使用jquery计算div中的子项数

时间:2013-12-05 02:08:12

标签: jquery

<div class="post-content">
    <p>xxxxx</p>
</div>
<div class="post-content">
    <p>Test1</p>
    <p>Test2</p>
    <p>Test3</p>
</div>

$(document).ready(function () {
    $('.post-content').each(function () {
        //alert($(this).children.length);
        alert($(this).length);
        console.log($(this).html());
    });
});

http://jsfiddle.net/7cXKr/

长度应该是内容后的p个孩子的数量。为什么输出不正确?

在这种情况下为1和3

3 个答案:

答案 0 :(得分:1)

children是方法,你必须称之为:

alert($(this).children().length);
//    call the method ^^

更新了DEMO


$(this).length将始终返回1,因为this是一个DOM元素,$(this)会创建一个包含一个元素的选择。

答案 1 :(得分:0)

尝试.children()

fiddle Demo

$(document).ready(function () {
    $('.post-content').each(function () {
        var count = $(this).children().length;
        alert(count);
    });
});

<小时/> 仅查找子p长度

var count = $(this).children('p').length;

<小时/> 如果你想包括孙子孙女,也可以使用.find()
代码问题

alert($(this).length);

指DOM元素,因此长度始终为1

使用$(this).children().length

答案 2 :(得分:0)

因为context(this)是一个jQuery对象,而不是

$(this).length

您可以使用

$(this).children().length