Elementy potomne jQuery count


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>

Chcę policzyć całkowitą liczbę <li>elementów <div id="selected"></div>. Jak to możliwe przy użyciu jQuery .children([selector])?



1
W czystym JS odpowiedź @ Mo. jest nadal trochę niska, ale użyjelement.childelementCount
Charles L.

Odpowiedzi:



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

lub:

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

10
Tylko uwaga .size () została uznana za przestarzałą na rzecz .length
Eric Kigathi

18

najszybszy:

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

2
To nie jest najszybszy, w rzeczywistości spowolniłeś go, dodając divtam :)
Nick Craver

1
To zależy od używanej przeglądarki. W wielu nowoczesnych przeglądarkach dodanie elementu korzysta z findByElement przed znalezieniem według identyfikatora lub klasy, co jest wolniejsze. Wkrótce będzie to jednak kwestia sporna, ponieważ wszystkie wyszukiwania DOM będą wykonywane przy użyciu jednej funkcji natywnej. W każdym razie proste getElementById („wybrane”) lub $ („wybrane”) byłoby w tym momencie szybsze.
Alex K,

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

Prawdopodobnie można również pominąć liw selektorze dla dzieci.

Zobaczyć .length.


13

Możesz użyć JavaScript (nie potrzebujesz jQuery)

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


4

Jest to po prostu możliwe childElementCountw czystym języku 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>


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.