1

我有一个带有 div、p 和 span 标签的 DOM 结构。我想计算带有子节点和没有任何子节点的“p”标签。我在这个论坛上阅读了一个解决方案,但它对我不起作用:如何检查元素是否在 Javascript 中有任何子元素?. 小提琴演示

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

3 回答 3

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)
})

演示:小提琴

于 2013-06-20T03:18:07.127 回答
1

试过这个吗?

$('p:empty')

应该选择所有空p标签。

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

应该选择所有非空p标签。

于 2013-06-20T03:23:48.107 回答
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()

于 2013-06-20T03:19:21.133 回答