<div id="selected">
  <ul>
    <li>29</li>
    <li>16</li>
    <li>5</li>
    <li>8</li>
    <li>10</li>
    <li>7</li>
  </ul>
</div> 





我想计算<li><div id="selected"></div>个元素的总数。使用jQuery的.children([selector])怎么可能?

评论

stackoverflow.com/questions/250688/…

在纯JS中,@ Mo。的答案仍然很低,但是请使用element.childelementCount

#1 楼

您可以仅将.length与后代选择器一起使用,例如:

var count = $("#selected li").length;


如果必须使用.children(),则它就像这样:
var count = $("#selected ul").children().length;


您可以在此处测试两个版本。

#2 楼

$("#selected > ul > li").size()


或:

$("#selected > ul > li").length


评论


仅弃用了一个注释.size(),而推荐使用.length

–埃里克·基加西(Eric Kigathi)
2014年3月18日23:45

#3 楼

最快的一个:

$("div#selected ul li").length


评论


这不是最快的,实际上您通过在其中添加div来减慢了速度:)

–尼克·克拉弗♦
10 Nov 27 '10:28



这实际上取决于您使用的浏览器。在许多现代浏览器中,在按ID或类查找之前,添加元素使用findByElement会比较慢。无论如何,这很快都会成为一个争论点,因为所有DOM搜索都将使用一个本机函数完成。无论如何,此时简单的getElementById('selected')或$('#selected')会更快。

– Alex K
2012-12-10 19:45



#4 楼

var length = $('#selected ul').children('li').length
// or the same:
var length = $('#selected ul > li').length


您也可以在儿童选择器中省略li

请参阅.length

#5 楼

您可以使用JavaScript(不需要jQuery)

document.querySelectorAll('#selected li').length;


#6 楼

$('#selected ul').children().length;


甚至更好的

 $('#selected li').length;


#7 楼

使用纯JavaScript的childElementCount完全可以实现




 var countItems = document.getElementsByTagName("ul")[0].childElementCount;
console.log(countItems); 

 <div id="selected">
  <ul>
    <li>29</li>
    <li>16</li>
    <li>5</li>
    <li>8</li>
    <li>10</li>
    <li>7</li>
  </ul>
</div> 




#8 楼

纯js

selected.children[0].children.length;





 let num = selected.children[0].children.length;

console.log(num); 

 <div id="selected">
  <ul>
    <li>29</li>
    <li>16</li>
    <li>5</li>
    <li>8</li>
    <li>10</li>
    <li>7</li>
  </ul>
</div>