如何使用jquery删除没有子节点的SPECIFIC div(至少没有子节点不是空格)。 E.g。
<div id="outer">
some content
<div id="removeme">
</div>
some more content
</div>
想要使用id =“removeme”完全删除div。
答案 0 :(得分:50)
删除id
等于removeme
的元素:
$("#removeme").remove();
要删除id
等于removeme
的元素,只有它为空:
$("#removeme:empty").remove();
删除所有空的<div>
:
$("div:empty").remove();
编辑:如果它不是空的,但有空格:
if($.trim($("#removeme").text()) == "") {
$("#removeme").remove();
}
答案 1 :(得分:6)
我去了:
$('#outer > div').filter(function (index) {
return $(this).children().length < 1;
}).remove();
这说:
可悲的是,如果它包含文本,这将删除div,这可能不是原始海报所希望的。纯文本不算作孩子。
答案 2 :(得分:2)
答案 3 :(得分:0)
我找不到忽略文本节点的选择器,所以这是我能想到的最快/最脏的代码片段。
$("#header").each(function() {
if($(this).children().length < 1)
$(this).remove()
});
答案 4 :(得分:0)
我想你想要这个:
$('div#outer div:empty').remove();
它将删除div#outer node
中的所有空div答案 5 :(得分:0)
如果有空的孩子,那么你可以指向孩子,然后删除父母, 这不要看空白时删除的空格
如此;如果li为空,则删除#removeme
if (!$("#tabs ul li").length) $('#tabs').remove();