使用jquery删除没有子节点的div
如何使用jquery删除没有子节点的SPECIFIC div(至少没有子节点不是空格)。 例如
some content some more content
想要用id =“removeme”完全删除div。
要删除id
等于removeme
的元素:
$("#removeme").remove();
要删除id
等于removeme
的元素,只有它是空的:
$("#removeme:empty").remove();
删除所有空
:
$("div:empty").remove();
编辑:如果它不是空的,但有空格:
if($.trim($("#removeme").text()) == "") { $("#removeme").remove(); }
我去了:
$('#outer > div').filter(function (index) { return $(this).children().length < 1; }).remove();
这说:
- 给我所有#outer的div孩子
- 使用filter去掉任何有子节点的东西
- 删除我们仍然选择的任何内容
遗憾的是,如果它包含文本,这将删除div,这可能不是原始海报所希望的。 纯文本不算作孩子。
我想你想要这个:
$('div#outer div:empty').remove();
它将删除div#outer节点内的所有空div
我找不到忽略文本节点的选择器,所以这是我能想出的最快/最脏的代码片段。
$("#header").each(function() { if($(this).children().length < 1) $(this).remove() });
这里有空的孩子然后你可以指向孩子,然后删除一个父,这不要看它只是删除空白
所以喜欢 如果li为空,则删除#removeme
if (!$("#tabs ul li").length) $('#tabs').remove();