Apakah objek pesanan dikembalikan oleh selektor jQuery yang ditentukan?

93

Semua penyeleksi jQuery mengembalikan larik objek. Apakah objek ini selalu dalam urutan yang sama seperti di HTML? Bisakah saya mengandalkan ini?

pengguna28584
sumber

Jawaban:

115

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.

Kobi
sumber
1
Menarik bahwa ini benar-benar ada di catatan rilis, dan itu juga masuk akal, tetapi seseorang lupa untuk meletakkannya juga di api.jquery.com/multiple-selector - sobat , tolong tambahkan info ini di sana juga :)!
jave.web
Jawabannya benar-benar lama, apakah ada yang menemukan tautan yang diperbarui?
Daniel Leach
1
@DanielLeach - Saya memperbarui tautan, terima kasih. Perilaku ini seharusnya masih benar, juga didokumentasikan di sini untuk versi terbaru: api.jquery.com/multiple-selector
Kobi
8

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/

Emery Lapinski
sumber
3

Ya, mereka selalu dalam urutan seperti di DOM.

reko_t
sumber
0

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?

royse41
sumber