使用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,这可能不是原始海报所希望的。 纯文本不算作孩子。

您还可以使用:

$( ‘格:空’)删除()。

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

我想你想要这个:

 $('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();