jQuery đếm các phần tử con


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>

Tôi muốn đếm tổng số <li>phần tử trong <div id="selected"></div>. Làm thế nào là có thể sử dụng jQuery .children([selector])?



1
Trong JS thuần túy, câu trả lời của @ Mo. vẫn còn thấp, nhưng hãy sử dụngelement.childelementCount
Charles L.

Câu trả lời:



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

hoặc là:

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

10
Chỉ cần một ghi chú .size () đã bị từ chối ủng hộ
.length

18

nhanh nhất

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

2
Đây không phải là nhanh nhất, trên thực tế, bạn đã làm chậm nó bằng cách thêm divvào đó :)
Nick Craver

1
Nó thực sự phụ thuộc vào trình duyệt bạn sử dụng. Trong nhiều trình duyệt hiện đại, việc thêm phần tử sử dụng findByEuity trước khi tìm theo id hoặc class, tốc độ chậm hơn. Dù sao thì đây cũng sẽ là một điểm cần thiết, bởi vì tất cả các tìm kiếm DOM sẽ được thực hiện bằng một hàm riêng. Trong mọi trường hợp, một getEuityById đơn giản ('được chọn') hoặc $ ('# được chọn') sẽ nhanh hơn vào thời điểm này.
Alex K

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

Bạn có thể cũng có thể bỏ qua li trong bộ chọn của trẻ em.

Xem .length.


13

Bạn có thể sử dụng JavaScript (không cần jQuery)

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

12
$('#selected ul').children().length;

hoặc thậm chí tốt hơn

 $('#selected li').length;

4

Nó chỉ đơn giản là có thể với childElementCounttrong javascript thuần

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>


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.