Используйте jquery для удаления div без детей.
Как я могу использовать jquery для удаления дочернего элемента SPECIFIC, у которого нет детей (по крайней мере, нет детей, которые не являются пробелами). Например.
<div id="outer">
some content
<div id="removeme">
</div>
some more content
</div>
Хотите полностью удалить div с id = "removeeme".
Ответы
Ответ 1
Чтобы удалить элемент с id
равным removeme
:
$("#removeme").remove();
Чтобы удалить элемент с id
равным removeme
, только если он пуст:
$("#removeme:empty").remove();
Чтобы удалить все пустые <div>
s:
$("div:empty").remove();
EDIT: Если он не пуст, но имеет пробел:
if($.trim($("#removeme").text()) == "") {
$("#removeme").remove();
}
Ответ 2
Я пошел с:
$('#outer > div').filter(function (index) {
return $(this).children().length < 1;
}).remove();
Это говорит:
- дайте мне всех детей div #outer
- использовать фильтр, чтобы избавиться от всех, у которых есть дочерние узлы.
- удалить все, что мы еще выбрали
К сожалению, это приведет к удалению div, если он содержит текст, что, вероятно, не то, что хотел бы оригинальный плакат. Обычный текст не считается дочерним.
Ответ 3
Вы также можете использовать:
$( 'DIV: пусто'). Удалить();
http://docs.jquery.com/Selectors/empty
Ответ 4
Я не мог найти селектор, который игнорирует текстовые узлы, поэтому это самый быстрый/самый грязный фрагмент кода, который я мог бы придумать.
$("#header").each(function() {
if($(this).children().length < 1)
$(this).remove()
});
Ответ 5
Я думаю, вы этого хотите:
$('div#outer div:empty').remove();
Он удалит все пустые div внутри div # external node
Ответ 6
Вот если пустой с детьми, то вы можете указать на детей, а затем удалить родителя,
это не смотреть на пробелы, которые он просто удаляет, если пустой
так нравится; если li пуст, он удаляет #removeme
if (!$("#tabs ul li").length) $('#tabs').remove();