当我们要用jQuery操作HTML,想移除某class的div标签,但保留内容文字。例如原HTML代码如下:
- <body>
- <div class="div1">
- <div class="div2">这是一个测试示例</div>
- </div>
- </body>
新窗显示代码
复制代码
现在要把上述代码class="div2"
的div标签删掉,只保留内容文字。想要的结果如下:
- <body>
- <div class="div1">
- 这是一个测试示例
- </div>
- </body>
新窗显示代码
复制代码
我们该如何写jQuery实现呢?下面是实现代码:
- $('div.div2').each(function() {
- // 提取内容
- var contents = $(this).html();
- // 将内容插入到当前位置(即div1的父元素)
- $(this).parent().append(contents);
- // 移除原来的div标签
- $(this).remove();
- });
新窗显示代码
复制代码
下面是一个完整示例
index.html
- <!DOCTYPE>
- <html>
- <head>
- <meta charset="UTF-8">
-
- <style>
- html,
- body {
- margin-top: 50px;
- margin-left: 50px;
- }
- .div1{
- background: #999;
- width:300px;
- height:80px;
- padding:15px 15px;
- }
- .div2 {
- background: #ccc;
- width:200px;
- height:50px;
- padding:5px 5px;
- }
-
- </style>
-
- </head>
-
- <body>
- <div class="div1">
- <div class="div2">这是一个测试示例</div>
- </div>
- <p>
- <input type=button value="提取内容" onclick=myfunc()>
- <input type=button value="还原" onclick=myfunc2()>
- </p>
- <script src='jquery-3.2.1.min.js'></script>
- <script>
- function myfunc(){
- $('div.div2').each(function() {
- // 提取内容
- var contents = $(this).html();
- // 将内容插入到当前位置(即div1的父元素)
- $(this).parent().append(contents);
- // 移除原来的div标签
- $(this).remove();
- });
- }
- function myfunc2(){
- var contents = $('div.div1').html();
- var htmlContents = "<div class='div2'>" + contents + "</div>";
- $('div.div1').html(htmlContents);
- }
- </script>
- </body>
-
- </html>
新窗显示代码
复制代码
demodownload
总结
本文介绍了如何用jQuery操作HTML,移除某class的div标签,但保留内容文字的实现代码。