ฉันมีรายชื่อ
<ul>
<li>
<li>
<li>
...
</ul>
ฉันต้องการ jQuery เพื่อนับจำนวนรายการในรายการของฉัน
ฉันมีรายชื่อ
<ul>
<li>
<li>
<li>
...
</ul>
ฉันต้องการ jQuery เพื่อนับจำนวนรายการในรายการของฉัน
คำตอบ:
คุณสามารถใช้.length
ดังนี้:
var count = $("ul li").length;
.length
บอกจำนวนที่ตรงกับตัวเลือกที่พบดังนั้นสิ่งนี้จะนับจำนวน<li>
ภายใต้<ul>
องค์ประกอบที่คุณมี ... หากมีลูกย่อยให้ใช้"ul > li"
แทนเพื่อรับเฉพาะลูกโดยตรง ถ้าคุณมีอื่น ๆ<ul>
องค์ประกอบในหน้าเว็บของคุณเพียงแค่เปลี่ยนเลือกให้ตรงกับเพียงหนึ่งของเขาตัวอย่างเช่นถ้ามี ID "#myListID > li"
ที่คุณต้องการใช้
ในสถานการณ์อื่น ๆ ที่คุณไม่ทราบประเภทลูกคุณสามารถใช้*
ตัวเลือก (สัญลักษณ์แทน) หรือ.children()
เช่นนี้:
var count = $(".parentSelector > *").length;
หรือ:
var count = $(".parentSelector").children().length;
$("#parent").children().length
คุณไม่จำเป็นต้องใช้ jQuery สำหรับสิ่งนี้ คุณสามารถใช้ของ .childNodes.length
JavaScript
ตรวจสอบให้แน่ใจว่าได้ลบ 1 หากคุณไม่ต้องการรวมโหนดข้อความเริ่มต้น (ซึ่งว่างเปล่าโดยค่าเริ่มต้น) ดังนั้นคุณจะใช้สิ่งต่อไปนี้:
var count = elem.childNodes.length - 1;
ลองใช้:
var count = $("ul > li").size();
alert(count);
จะเกิดอะไรขึ้นถ้าคุณใช้สิ่งนี้เพื่อกำหนดตัวเลือกปัจจุบันเพื่อค้นหาลูกของมันเพื่อให้สิ่งนี้ถือ: <ol>
จากนั้นจะมี<li>
วิธีการเขียนตัวเลือกที่
var count = $(this+"> li").length;
ไม่ทำงานอย่างไร ..
$("ol.class > li").length
คุณสามารถทำได้โดยใช้ jQuery:
วิธีนี้ได้รับรายชื่อลูกของมันจากนั้นจะนับความยาวของรายการนั้นง่ายๆเพียงแค่นั้น
$("ul").find("*").length;
วิธี find () ข้าม DOM ลงไปตามลูกหลานจนถึงลูกหลานคนสุดท้าย
หมายเหตุ:วิธี children () ข้ามผ่าน DOM ทรีระดับเดียว
document.querySelectorAll('ul li').length