Semua penyeleksi jQuery mengembalikan larik objek. Apakah objek ini selalu dalam urutan yang sama seperti di HTML? Bisakah saya mengandalkan ini?
93
Iya.
The jQuery 1.3.2 catatan rilis mengatakan:
Elemen Dikembalikan dalam Urutan Dokumen
Ini adalah perubahan pada mesin pemilih jQuery yang mengatur ulang hasil yang dikembalikan menjadi dalam urutan dokumen, bukan urutan penyeleksi yang diteruskan. Perubahan ini dilakukan agar sesuai dengan spesifikasi API Selektor (yang mana jQuery menggunakan, secara internal, di browser yang mendukungnya).
Ini tidak terjadi pada jQuery 1.3 :
Urutan pemilih gaya "a, b, c" dapat berubah. Browser yang mendukung querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) akan mengembalikan elemen dalam urutan dokumen, browser lain (saat ini) akan mengembalikannya dalam urutan yang ditentukan. Di 1.3.2 dan yang lebih baru, semua pemilih yang dipisahkan koma akan dikembalikan dalam urutan dokumen.
Mungkin ada beberapa pengecualian, misalnya dari dokumentasi prevAll ():
"Diberikan objek jQuery yang mewakili satu set elemen DOM, metode .prevAll () mencari melalui pendahulu elemen ini di pohon DOM dan membangun objek jQuery baru dari elemen yang cocok; elemen dikembalikan secara berurutan dimulai dengan saudara terdekat . "
http://api.jquery.com/prevAll/
sumber
Ya, mereka selalu dalam urutan seperti di DOM.
sumber
Mungkin dalam urutan menemukannya, selektor cukup banyak melintasi DOM dan ketika menemukan elemen yang cocok, letakkan di dalam array.
Anda mungkin bisa melakukan tes dengan mengatakan 5 kotak teks dengan id "textbox_n" di mana n adalah angka, lalu peringatkan daftar dan lihat apa yang Anda dapatkan?
sumber