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 ที่บริสุทธิ์คำตอบของ @ Mo. นั้นค่อนข้างนิ่ง แต่ใช้element.childelementCount
Charles L.

คำตอบ:



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

หรือ:

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

10
เพิ่งทราบ. ขนาด () ได้รับการคัดค้านในความยาว.
Eric Kigathi

18

เร็วที่สุด:

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

2
นี่ไม่ใช่วิธีที่เร็วที่สุดอันที่จริงแล้วคุณทำให้มันช้าลงโดยการเพิ่มเข้าไปdiv:)
Nick Craver

1
มันขึ้นอยู่กับเบราว์เซอร์ที่คุณใช้จริงๆ ในเบราว์เซอร์สมัยใหม่จำนวนมากการเพิ่มองค์ประกอบใช้ findByElement ก่อนการค้นหาโดยใช้ id หรือคลาสซึ่งช้ากว่า ในไม่ช้านี่จะเป็นจุดที่สงสัย แต่อย่างใดเนื่องจากการค้นหา DOM ทั้งหมดจะทำได้โดยใช้หนึ่งฟังก์ชันเนทีฟ ในกรณีใด ๆ getElementById ('เลือก') หรือ $ ('# selected') แบบง่ายจะเร็วขึ้น ณ จุดนี้
Alex K




4

มันเป็นไปได้อย่างง่ายดายด้วยchildElementCountในจาวาสคริปต์ที่บริสุทธิ์

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>


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.