jQuery sayısı alt öğeleri


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>

Toplam <li>öğe sayısını saymak istiyorum <div id="selected"></div>. JQuery's kullanarak bu nasıl mümkün olur .children([selector])?



1
Saf JS'de, @ Mo.'nin cevabı hala düşüktür, ancak kullanınelement.childelementCount
Charles L.

Yanıtlar:



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

veya:

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

10
.Length lehine bir not .size () kullanımdan kaldırılmıştır
Eric Kigathi

18

en hızlı olanı:

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

2
Bu en hızlı değil, aslında divorada ekleyerek yavaşlattınız :)
Nick Craver

1
Gerçekten hangi tarayıcıyı kullandığınıza bağlıdır. Birçok modern tarayıcıda, öğeyi eklemek kimliğe veya sınıfa göre bulmadan önce findByElement öğesini kullanır, bu daha yavaştır. Yakında bu her iki durumda da tartışmalı bir nokta olacak, çünkü tüm DOM aramaları bir yerel işlev kullanılarak yapılacak. Her durumda, basit bir getElementById ('seçildi') veya $ ('# seçildi') bu noktada daha hızlı olacaktır.
Alex K

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

Muhtemelen liçocuk seçicide de atlayabilirsiniz .

Bkz .length.


13

JavaScript kullanabilirsiniz (jQuery gerekmez)

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


4

Sadece childElementCountsaf javascript ile mümkündür

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>


1

saf js

selected.children[0].children.length;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.