การเลือกรายการ“ n” แรกด้วย jQuery


217

ด้วย Jquery ฉันต้องเลือกเฉพาะรายการ "n" แรกจากหน้าเช่นลิงก์ 20 รายการแรกแทนที่จะเลือกทั้งหมดด้วยวิธีปกติ

$("a")

ฟังดูง่าย แต่คู่มือ jQuery ไม่มีหลักฐานอะไรเช่นนี้

คำตอบ:


378

คุณอาจต้องการที่จะอ่านข้อมูลเกี่ยวกับชิ้น รหัสของคุณจะมีลักษณะดังนี้:

$("a").slice(0,20)

65
แม้ว่า:lt(20)วิธีการทำความสะอาดมากมีลักษณะการใช้ชิ้นเป็นมากมีประสิทธิภาพมากขึ้นถ้าคุณมีชุดผลขนาดใหญ่จะเริ่มต้นด้วย น่าเสียดายที่เมื่อประเมิน ": lt" และตัวเลือกตำแหน่งอื่น ๆjQuery จะวนซ้ำทั้งชุดแม้ว่าจะเป็นเพียงองค์ประกอบแรกก็ตาม ฉันได้เขียนเพิ่มเติมเกี่ยวกับเรื่องนี้ในบล็อกของฉันที่นี่: spadgos.com/?p=51
nickf

1
ขอบคุณความต้องการด้านคำขอของฉันเกี่ยวกับการแสดงดังนั้นนี่คือคำตอบที่ถูกต้องสำหรับฉัน ขอบคุณคนอื่น ๆ ที่ชี้ให้เห็น: lt selector เช่นกัน
Omiod

3
ความคิดเห็นที่ให้ข้อมูลโดย @nickf แต่ดูเหมือนว่าลิงก์บล็อกและกราฟลิงก์จะใช้งานไม่ได้
Fractalf

1
ไม่สามารถแก้ไขได้ในขณะนี้ขออภัย - โดยทั่วไปการใช้งานชิ้นงานเร็วกว่ามาก
nickf

92

ใช้ตัวเลือก lt pseudo:

$("a:lt(n)")

สิ่งนี้ตรงกับองค์ประกอบก่อนที่หนึ่ง (องค์ประกอบที่ n ที่ยกเว้น) การกำหนดหมายเลขเริ่มต้นจาก 0


13
ตาม jQuery Docs , .slice เร็วกว่าในเบราว์เซอร์สมัยใหม่
เบลส

1
ฉันชอบการใช้สไตล์ jQuery มันดูหรูหรากว่าการผูกมัด
Fedir RYKHTIK

22

ฉันพบบันทึกนี้ในตอนท้ายของเอกสารlt () :

หมายเหตุเพิ่มเติม:
เนื่องจาก: lt () เป็นส่วนขยาย jQuery และไม่ได้เป็นส่วนหนึ่งของข้อมูลจำเพาะ CSS การสืบค้นโดยใช้: lt () ไม่สามารถใช้ประโยชน์จากการเพิ่มประสิทธิภาพที่มีให้โดยวิธี native DOM querySelectorAll () เพื่อประสิทธิภาพที่ดีขึ้นในเบราว์เซอร์สมัยใหม่ให้ใช้ $ ("your-pure-css-selector"). slice (0, index) แทน

ดังนั้นใช้$("selector").slice(from, to)สำหรับการแสดงที่ดีขึ้น



7

.slice () ไม่ดีกว่าเสมอไป ในกรณีของฉันด้วย jQuery 1.7 ใน Chrome 36, .slice (0, 20) ล้มเหลวโดยมีข้อผิดพลาด:

RangeError: เกินขนาดสแต็กการโทรสูงสุด

ฉันพบว่า: lt (20) ทำงานโดยไม่มีข้อผิดพลาดในกรณีนี้ ฉันอาจมีองค์ประกอบเข้าคู่นับหมื่น


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