选择基本元素?

时间:2012-03-31 23:02:00

标签: javascript jquery html jquery-selectors

如何选择不包含任何元素的元素(使用jQuery)?

例如,在以下树中:

<div class="a">
    <div class="b">
        <div class="c"></div>
    </div>
    <div class="d"></div>
    <div class="e">Lorem</div>
</div>

仅选择<div> classcd的{​​{1}}。

2 个答案:

答案 0 :(得分:3)

试试这个:

$('*').filter(function() {
    return $(this).children().length == 0;
});

您也可以在过滤器函数中使用(更快)本机DOM访问:

return this.children.length == 0;

答案 1 :(得分:3)

$(':not(:has(*))')...

LIVE DEMO

如果您想使用filter函数执行此操作,请注意在下一个jQuery版本中将不推荐使用> element

你可以用这个:

$('*').filter(function(){
        return $('*', this).length == 0
    })

:empty选择器在此无法使用,因为<div class="e">

中有文本节点

使用:empty选择器:

$(':empty')...

docs

  

描述:选择所有没有子元素的元素(包括文本节点)。