使用jquery / javascript检查是否存在任何子节点

时间:2013-06-20 03:10:15

标签: javascript jquery

我有一个带有div,p和span标签的DOM结构。我想用子节点计算'p'标签,没有任何子节点。我在这个论坛上阅读了一个解决方案,但它对我不起作用:How to check if element has any children in Javascript?。 小提琴demo

$('#test').blur(function(){
    var test= $('.check p').filter(function (){
    if ($(this).childNodes.length > 0)
        return this
    });
    alert(test.lenght)
})

3 个答案:

答案 0 :(得分:1)

应该是

$('#test').blur(function(){
    var test= $('.check p').filter(function (){
        return this.childNodes.length > 0; // as HMR pointed out in the comments if you are looking for child elements then $(this).children().length will do
    })

    alert(test.length)
})

演示:Fiddle

答案 1 :(得分:1)

你有try this吗?

$('p:empty')

应选择所有空的p代码。

$('p').not(':empty')

应选择所有非空p标记。

答案 2 :(得分:0)

此处:http://jsfiddle.net/QN3aM/9/

$('#test').blur(function () {
    var test = $('.check p').filter(function () {
        return ($(this).children().length)
    });
    alert(test.length);
})

你只需要在过滤器中返回true,0是假值,其他任何东西都是真实的。你拼错了长度。

childNodes是元素的属性。当您将元素转换为jquery对象时,您必须使用jquery方法children()