【发布时间】:2009-02-09 06:21:16
【问题描述】:
如何使用 jquery 删除没有子元素的特定 div(至少没有非空格的子元素)。例如
<div id="outer">
some content
<div id="removeme">
</div>
some more content
</div>
想要完全删除 id="removeme" 的 div。
【问题讨论】:
如何使用 jquery 删除没有子元素的特定 div(至少没有非空格的子元素)。例如
<div id="outer">
some content
<div id="removeme">
</div>
some more content
</div>
想要完全删除 id="removeme" 的 div。
【问题讨论】:
删除id等于removeme的元素:
$("#removeme").remove();
仅当id 等于removeme 为空时删除元素:
$("#removeme:empty").remove();
删除所有空的<div>s:
$("div:empty").remove();
编辑:如果它不是空的,但有空格:
if($.trim($("#removeme").text()) == "") {
$("#removeme").remove();
}
【讨论】:
我去了:
$('#outer > div').filter(function (index) {
return $(this).children().length < 1;
}).remove();
这说:
遗憾的是,如果 div 包含文本,这将删除它,这可能不是原始海报想要的。纯文本不算作子项。
【讨论】:
【讨论】:
我想你想要这个:
$('div#outer div:empty').remove();
它将删除 div#outer 节点内的所有空 div
【讨论】:
我找不到忽略文本节点的选择器,所以这是我能想到的最快/最脏的代码 sn-p。
$("#header").each(function() {
if($(this).children().length < 1)
$(this).remove()
});
【讨论】:
如果有子项为空,则可以指向子项,然后删除父项, 这不看空格,如果为空,它只会删除
很喜欢;如果 li 为空,则会删除 #removeme
if (!$("#tabs ul li").length) $('#tabs').remove();
【讨论】:
如果没有特定类的子级,则删除父级
$('.parentClass:not(:has(.childClass))').remove();
【讨论】: