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's .children([selector])?



1
У чистому JS відповідь @ Mo. все ще є невисокою, але використанняelement.childelementCount
Чарльз Л.

Відповіді:




18

найшвидший:

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

2
Це не найшвидше, насправді ви його сповільнили, додавши divтуди :)
Нік Крейвер

1
Це дійсно залежить від того, який браузер ви використовуєте. У багатьох сучасних браузерах додавання елемента використовує findByElement перед тим, як знайти за id або класом, що повільніше. Незабаром, це буде суперечливим питанням, оскільки будь-який пошук DOM здійснюватиметься за допомогою однієї нативної функції. У будь-якому випадку, простий getElementById ('вибраний') або $ ('# вибраний') був би швидшим у цей момент.
Алекс К

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>


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.