2014-11-21 142 views
3

我有一个元素列表,我想删除没有属性和子元素的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

如果去除的条件是:

  1. DIV标签
  2. 它们没有什么属性
  3. 没有孩子元素

,那么你可能需要一个过滤器:

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

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

+0

这适用于我。谢谢 – 2014-11-21 20:39:42

1

你可以使用过滤器。

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

这将删除所有空div。

0

经过一番调查和审判,我已经得到了它:

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

JSFiddle Demo

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