อ็อบเจ็กต์คำสั่งส่งคืนโดยตัวเลือก jQuery ที่ระบุหรือไม่


93

ตัวเลือก jQuery ทั้งหมดส่งคืนอาร์เรย์ของวัตถุ วัตถุเหล่านี้อยู่ในลำดับเดียวกับที่อยู่ใน HTML หรือไม่? ฉันสามารถพึ่งพาสิ่งนี้ได้หรือไม่?

คำตอบ:


115

ใช่. 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 และใหม่กว่าปล่อยตัวเลือกที่คั่นด้วยจุลภาคทั้งหมดจะถูกส่งคืนตามลำดับเอกสาร


1
น่าสนใจว่ามันมีอยู่ในบันทึกประจำรุ่นจริงๆและมันก็สมเหตุสมผลเช่นกัน แต่มีใครบางคนลืมที่จะใส่ไว้ในapi.jquery.com/multiple-selector ด้วย - ที่รักกรุณาเพิ่มข้อมูลนี้ด้วย :)!
jave.web

คำตอบคือเก่าจริงมีใครพบลิงค์ที่อัปเดตหรือไม่?
Daniel Leach

1
@DanielLeach - ฉันอัปเดตลิงก์แล้วขอบคุณ พฤติกรรมนี้ควรจะยังคงถูกต้องและยังมีเอกสารสำหรับเวอร์ชันล่าสุดด้วย: api.jquery.com/multiple-selector
Kobi

8

อาจมีข้อยกเว้นบางประการตัวอย่างเช่นจากเอกสาร prevAll ():

"ด้วยวัตถุ jQuery ที่แสดงถึงชุดขององค์ประกอบ DOM เมธอด. prevAll () จะค้นหาผ่านองค์ประกอบก่อนหน้าขององค์ประกอบเหล่านี้ในโครงสร้าง DOM และสร้างวัตถุ jQuery ใหม่จากองค์ประกอบที่ตรงกันองค์ประกอบจะถูกส่งคืนตามลำดับโดยเริ่มต้นด้วย พี่น้องที่สนิทที่สุด

http://api.jquery.com/prevAll/



0

อาจเป็นไปตามลำดับที่พบพวกเขาตัวเลือกจะเคลื่อนที่ผ่าน DOM และเมื่อพบองค์ประกอบที่ตรงกันให้วางไว้ในอาร์เรย์

คุณอาจทำการทดสอบโดยพูด 5 textboxes พร้อม id ของ "textbox_n" โดยที่ n คือตัวเลขจากนั้นแจ้งเตือนรายการและดูว่าคุณได้อะไร?

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