ตัวเลือก jQuery ทั้งหมดส่งคืนอาร์เรย์ของวัตถุ วัตถุเหล่านี้อยู่ในลำดับเดียวกับที่อยู่ใน HTML หรือไม่? ฉันสามารถพึ่งพาสิ่งนี้ได้หรือไม่?
ตัวเลือก jQuery ทั้งหมดส่งคืนอาร์เรย์ของวัตถุ วัตถุเหล่านี้อยู่ในลำดับเดียวกับที่อยู่ใน HTML หรือไม่? ฉันสามารถพึ่งพาสิ่งนี้ได้หรือไม่?
คำตอบ:
ใช่. jQuery 1.3.2 บันทึกประจำรุ่นบอกว่า:
องค์ประกอบที่ส่งคืนในลำดับเอกสาร
นี่คือการเปลี่ยนแปลงกลไกการเลือกของ jQuery ที่สั่งให้ผลลัพธ์ที่ส่งคืนกลับมาอยู่ในลำดับเอกสารแทนลำดับที่ตัวเลือกถูกส่งผ่านการเปลี่ยนแปลงนี้ทำเพื่อให้เป็นไปตามข้อกำหนด Selectors API (ซึ่ง jQuery ใช้ภายในเบราว์เซอร์ที่รองรับ)
นี่ไม่ใช่กรณีของjQuery 1.3 :
ลำดับของตัวเลือกสไตล์ "a, b, c" อาจมีการเปลี่ยนแปลง เบราว์เซอร์ที่รองรับ querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) จะส่งคืนองค์ประกอบตามลำดับเอกสารเบราว์เซอร์อื่น ๆ จะส่งคืนองค์ประกอบตามลำดับที่ระบุ ใน 1.3.2 และใหม่กว่าปล่อยตัวเลือกที่คั่นด้วยจุลภาคทั้งหมดจะถูกส่งคืนตามลำดับเอกสาร
อาจมีข้อยกเว้นบางประการตัวอย่างเช่นจากเอกสาร prevAll ():
"ด้วยวัตถุ jQuery ที่แสดงถึงชุดขององค์ประกอบ DOM เมธอด. prevAll () จะค้นหาผ่านองค์ประกอบก่อนหน้าขององค์ประกอบเหล่านี้ในโครงสร้าง DOM และสร้างวัตถุ jQuery ใหม่จากองค์ประกอบที่ตรงกันองค์ประกอบจะถูกส่งคืนตามลำดับโดยเริ่มต้นด้วย พี่น้องที่สนิทที่สุด ”
ใช่มันเรียงตามลำดับเสมอเหมือนอยู่ใน DOM
อาจเป็นไปตามลำดับที่พบพวกเขาตัวเลือกจะเคลื่อนที่ผ่าน DOM และเมื่อพบองค์ประกอบที่ตรงกันให้วางไว้ในอาร์เรย์
คุณอาจทำการทดสอบโดยพูด 5 textboxes พร้อม id ของ "textbox_n" โดยที่ n คือตัวเลขจากนั้นแจ้งเตือนรายการและดูว่าคุณได้อะไร?