Используйте jquery, чтобы удалить div без детей - PullRequest
17 голосов
/ 09 февраля 2009

Как я могу использовать jquery, чтобы удалить конкретный div, у которого нет дочерних элементов (по крайней мере, нет дочерних элементов, которые не являются пробелами). Э.Г.

<div id="outer">
    some content
    <div id="removeme"> 


    </div>
    some more content
</div>

Хотите полностью удалить div с id = "removeme".

Ответы [ 6 ]

50 голосов
/ 09 февраля 2009

Для удаления элемента с id, равным removeme:

$("#removeme").remove();

Чтобы удалить элемент с id, равным removeme, только если он пуст:

$("#removeme:empty").remove();

Чтобы удалить все пустые <div> s:

$("div:empty").remove();

РЕДАКТИРОВАТЬ: Если он не пустой, но имеет пробел:

if($.trim($("#removeme").text()) == "") {
  $("#removeme").remove();
}
6 голосов
/ 03 июня 2010

Я пошел с:

$('#outer > div').filter(function (index) { 
    return $(this).children().length < 1; 
}).remove();

Это говорит:

  • дай мне всех детей div от # external
  • используйте фильтр, чтобы избавиться от любых дочерних узлов
  • удалить все, что мы еще выбрали

К сожалению, это удалит div, если он содержит текст, что, вероятно, не то, что хотел бы оригинальный плакат. Обычный текст не считается ребенком.

2 голосов
/ 09 февраля 2009

Вы также можете использовать:

$. ( 'DIV: пусто') удалить ();

http://docs.jquery.com/Selectors/empty

0 голосов
/ 08 июня 2012

Вот если пусто с детьми, то вы можете указать на детей, а затем удалить родителя, это не смотрит на пробелы, которые он просто удаляет, если пуст

так нравится; если li пуст, он удаляет # removeme

if (!$("#tabs ul li").length) $('#tabs').remove();
0 голосов
/ 09 февраля 2009

Я думаю, вы хотите это:

$('div#outer div:empty').remove();

Он удалит все пустые элементы div внутри внешнего узла div #

0 голосов
/ 09 февраля 2009

Я не смог найти селектор, который игнорирует текстовые узлы, поэтому это самый быстрый / самый грязный фрагмент кода, который я мог придумать.

$("#header").each(function() { 
    if($(this).children().length < 1) 
        $(this).remove() 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...