jQuery计算子元素


324

<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
在纯JS中,@ Mo。的回答仍然很低,但是使用element.childelementCount
Charles

Answers:




18

最快的一个:

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

2
这不是最快的方法,实际上您通过div在其中添加来降低了速度:)
Nick Craver

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

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

您可能还可以省略li儿童选择器。

请参阅.length


13

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

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


4

childElementCount纯JavaScript 完全有可能

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>


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.