2014-11-21 3 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(); 

Селектор 5 в jQuery удалит все теги DIV без дочерних узлов, включая теги DIV, которые имеют атрибуты и не имеют дочерних узлов.

+0

Это работает для меня. благодаря –

1

вы можете использовать фильтр.

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

Это удалит все пустые div.

0

после того, как некоторые исследования и попытки, я получил его:

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

JSFiddle Demo

редактировать: хорошо, что до сих пор не решение, так как это просто проверка атрибутов class и id.