2014-11-21 187 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屬性的解決方案。