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, ответ @ Мо. element.childelementCount
Чарльз Л.

Ответы:




18

самый быстрый:

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

2
Это не самый быстрый, на самом деле вы замедлили его, добавив divтуда :)
Ник Крейвер

1
Это действительно зависит от того, какой браузер вы используете. Во многих современных браузерах добавление элемента использует findByElement перед поиском по id или классу, что медленнее. Однако в любом случае это будет спорный вопрос, потому что все поиски в DOM будут выполняться с использованием одной встроенной функции. В любом случае, простой getElementById ('selected') или $ ('# selected') будет быстрее на этом этапе.
Алекс К

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

Вы, вероятно, также можете опустить 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.