<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])
怎么可能?#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 楼
纯jsselected.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>
评论
stackoverflow.com/questions/250688/…在纯JS中,@ Mo。的答案仍然很低,但是请使用element.childelementCount