ฉันแนะนำให้ใช้$('#foo').children().size()
เพื่อประสิทธิภาพที่ดีขึ้น
ฉันได้สร้างการทดสอบjsperfเพื่อดูความแตกต่างความเร็วและchildren()
วิธีการเอาชนะตัวเลือกลูก (#foo> div) วิธีการอย่างน้อย60%ใน Chrome (นกขมิ้นสร้าง v15) 20-30%ใน Firefox (v4)
โดยวิธีการที่จำเป็นต้องพูดสองวิธีนี้ให้ผลลัพธ์ที่เหมือนกัน (ในกรณีนี้คือ 1,000)
[อัปเดต] ฉันได้อัปเดตการทดสอบเพื่อรวมขนาด () และการทดสอบความยาวแล้วและพวกเขาก็ไม่ได้สร้างความแตกต่างมากนัก (ผล: length
การใช้งานเร็วกว่า (2%) เล็กน้อยsize()
)
[อัปเดต] เนื่องจากมาร์กอัปที่ไม่ถูกต้องที่เห็นใน OP (ก่อนที่จะอัปเดต 'ฉันตรวจสอบความถูกต้องของมาร์กอัป' โดยฉัน) ทั้งสอง$("#foo > div").length
& $('#foo').children().length
ส่งผลเหมือนกัน ( jsfiddle ) แต่สำหรับคำตอบที่ถูกต้องเพื่อให้ได้ลูก 'div' เท่านั้นควรใช้ตัวเลือกลูกเพื่อให้ได้ประสิทธิภาพที่ดีขึ้น