Sipariş nesneleri bir jQuery seçici tarafından belirtilmiş mi?


93

Tüm jQuery seçicileri bir dizi nesne döndürür. Bu nesneler her zaman HTML’dekilerle aynı sırada mı? Buna güvenebilir miyim?

Yanıtlar:


115

Evet. JQuery 1.3.2 sürüm notları ki:

Belge Sırasına Göre İade Edilen Öğeler

Bu, jQuery'nin seçici motorunda yapılan bir değişikliktir ve döndürülen sonuçları, seçicilerin geçirildiği sıra yerine belge sırasına göre yeniden düzenler. Bu değişiklik, Selectors API spesifikasyonuna (ki jQuery, dahili olarak onu destekleyen tarayıcılarda kullanır).

JQuery 1.3'te durum böyle değildi :

"A, b, c" stil seçicilerinin sırası değişebilir. QuerySelectorAll'ı destekleyen tarayıcılar (Safari, Firefox 3.5+, Opera 10+, IE 8+) öğeleri belge sırasına göre döndürür, diğer tarayıcılar (şu anda) bunları belirtilen sırayla döndürür. 1.3.2 ve sonraki sürümlerde, virgülle ayrılmış tüm seçiciler belge sırasına göre döndürülecektir.


1
Gerçekten sürüm notlarında olması ilginç ve aynı zamanda mantıklı, ama birisi onu api.jquery.com/multiple-selector'a da koymayı unuttu - sevgili biri, lütfen bu bilgiyi oraya da ekleyin :)!
jave.web

Cevap gerçekten eski kimse güncellenmiş bir bağlantı buldu mu?
Daniel Leach

1
@DanielLeach - Bağlantıları güncelledim, teşekkürler. Bu davranış yine de doğru olmalıdır, en son sürüm için burada da belgelenmiştir: api.jquery.com/multiple-selector
Kobi

8

Örneğin prevAll () belgelerinde bazı istisnalar olabilir:

"Bir dizi DOM öğesini temsil eden bir jQuery nesnesi verildiğinde, .prevAll () yöntemi DOM ağacındaki bu öğelerin öncülleri arasında arama yapar ve eşleşen öğelerden yeni bir jQuery nesnesi oluşturur; öğeler, en yakın kardeş . "

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


3

Evet, DOM'da oldukları için her zaman sıradalar.


0

Muhtemelen onları bulma sırasına göre, bir seçici DOM'u büyük ölçüde dolaşır ve eşleşen bir öğe bulduğunda onu bir diziye koyar.

Belki n'nin bir sayı olduğu "textbox_n" kimlikli 5 metin kutusu diyerek, listeyi uyararak ve ne elde ettiğinizi görerek bir test yapabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.