如何删除没有属性和子元素的元素?

时间:2014-11-21 20:21:41

标签: jquery

我有一个元素列表,我想删除没有属性和子元素的div元素。

示例代码:

<div class="wrapper">
  <div class="xx-1"></div>
  <div id="yy-1"></div>
  <div></div>
  <div><h1>Hello World!</h1></div>
  <div></div>
  <div></div>
</div>

如何在包装类中删除<div></div>

3 个答案:

答案 0 :(得分:3)

如果要删除的条件是:

  1. DIV标签
  2. 没有属性
  3. 并且没有子元素
  4. 然后你可能想要一个过滤器:

    $(".wrapper div").filter(function() {
        return this.attributes.length == 0
            && this.childNodes.length == 0;
    }).remove();
    

    jQuery中的div:empty选择器将删除所有没有子节点的DIV标记,包括具有属性且没有子节点的DIV标记。

答案 1 :(得分:1)

你可以使用过滤器。

$(".wapper div").filter(function () {
    return $(this).text() == "";
}).remove();

这将删除所有空div。

答案 2 :(得分:0)

经过一番调查和尝试,我得到了它:

$('div:not([class]):not([id]):not(:has(*))').remove();

JSFiddle Demo

编辑好的,这仍然不是解决方案,因为它只是检查classid属性。