ฉันได้เพิ่มการทดสอบjsperfเพื่อดูความแตกต่างความเร็วสำหรับวิธีการต่าง ๆ เพื่อรับลูกคนแรก (รวม 1,000+ เด็ก)
ได้รับ notif = $('#foo')
วิธี jQuery:
$(":first-child", notif) - 4,304 ops / วินาที - เร็วที่สุด
notif.children(":first") - 653 ops / วินาที - ช้าลง 85%
notif.children()[0] - 1,416 ops / วินาที - ช้าลง 67%
วิธีพื้นเมือง:
- JavaScript ดั้งเดิม '
ele.firstChild- 4,934,323 ops / วินาที (วิธีการทั้งหมดข้างต้นช้ากว่า 100% เมื่อเทียบกับfirstChild)
- Native DOM ele จาก jQery:
notif[0].firstChild- 4,913,658 ops / วินาที
ดังนั้นไม่แนะนำ 3 jQuery วิธีแรกอย่างน้อยสำหรับลูกคนแรก (ฉันสงสัยว่าจะเป็นเช่นนี้กับคนอื่น ๆ ด้วย) หากคุณมีวัตถุ jQuery และความต้องการที่จะได้รับเป็นครั้งแรกที่เด็กแล้วได้รับองค์ประกอบ DOM พื้นเมืองจากวัตถุ jQuery ใช้อ้างอิงอาร์เรย์[0] (แนะนำ)หรือและใช้.get(0) ele.firstChildสิ่งนี้ให้ผลลัพธ์ที่เหมือนกันเหมือนกับการใช้งาน JavaScript ปกติ
การทดสอบทั้งหมดเสร็จสิ้นใน Chrome Canary build v15.0.854.0