如何获取子元素的数量?

时间:2012-09-10 16:39:49

标签: jquery

我正在尝试计算我的div中的类.test中有多少元素。我有

<div id='testDiv'>ddd 
   <div class='test'> 111<div> another div </div></div>
   <div class='test'> 222</div>
   <div class='test'> 333</div>
   more...
</div>

我的jQuery:

if($('#testDiv.test').length>5){
   alert('haha');
}

我似乎无法通过类名测试获得正确的div数。

5 个答案:

答案 0 :(得分:5)

更改选择器如下:

$('#testDiv .test').length

space#testDiv之间加.test

$('#testDiv .test')会找出#testDiv class=test的直接子女。

完整代码:

if( $('#testDiv .test').length > 5 ){
   alert('haha');
}

注意

$('#testDiv.test')表示您选择的某个元素同时包含id=testDivclass=test <div id="testDiv" class="test"></div>

答案 1 :(得分:4)

尝试在#testDiv.test

之间添加空格
$('#testDiv .test').length

您拥有的内容如下,

$('#testDiv.test') //- element with ID testDiv and class test  
//<div id="testDiv" class="test">...</div>

答案 2 :(得分:3)

您正在搜索ID为testDiv AND test的元素,例如

<div id="testDiv" class="test">

你需要

$('#testDiv .test")
           ^--- note the space

代替。对于空间,所有具有类'test'的节点都是具有id testDiv的节点的子节点。

答案 3 :(得分:1)

尝试:

$('#testDiv').children('.test').length;

答案 4 :(得分:1)

  • $('#testDiv .test")这将计算所有立即后代 - 如果它是孩子的​​孩子,则不会计算它。
  • $('#testDiv').find('.test')或只是$('#testDiv, .test')会找到所有后代。