如果没有孩子,删除一些元素

时间:2017-03-29 05:17:10

标签: javascript jquery

如果没有孩子,我需要删除一些元素......

这将有效...

$$('*').each(function() {
    ($$(this).text().trim() === '') && $$(this).remove()
});

但它会查找所有元素......我需要限制一些元素..所以我做了这个..

elements.forEach(element => {
    $$(element).each(function() {
        ($$(this).text().trim() === '') && $$(this).remove()
    });
})

但它不起作用..

5 个答案:

答案 0 :(得分:4)

您可以使用:empty伪选择器来收集所有空元素:

$(':empty').remove(); // removes all the empty elements 

如果你定位某些特定的元素,那么要给它一个类名并在结合中使用它们:

$('.theClass:empty').remove(); 

或者只使用特定元素的 标记名

$('div:empty').remove(); // removes all the empty divs

答案 1 :(得分:2)

您可以使用id选择器中的classtagjQuery。请尝试以下方式:

$("div:empty").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<div><span>test</span></div>
<div></div>

答案 2 :(得分:0)

我喜欢Mamun的方法。如果要将其应用于某些元素类型集合,则只能修改/简化它:

$("div,td,p,... and other elements").filter(":empty").remove();

对不起,刚才注意到,周杰伦也提供了我解决方案的一部分。我不想在这里不必要地重复一些事情,但也许两者的结合仍然是相关的。

答案 3 :(得分:0)

  

从当前文档中删除所有empty tags

$("*:empty").remove();

答案 4 :(得分:0)

如果我理解你的要求,你应该rty:

if($("some selection").children() === undefined){
//do something
}

或作为一种功能:

function rmIfNoChild(jQobj){
    if(jQobj.children() === undefined){
      //do something
    }
}