2012-12-08 34 views
8

jQuery için yeni ve nesneleri için dizi gösterimini anlama konusunda biraz sorun yaşıyorum. jQuery dokümanlar ve this article Okuma, size jQuery Nesne dizisi notasyonu

$('.foo')[n]; 

Doğru

gibi bir şey yaparak bir selektör tarafından döndürülen bir nesne nth öğeye başvuruda bulunabilir görünüyor? jQuery manipülasyon/efekt işlevlerini art arda kullanabilir miyim? boşuna,

$('.foo')[0].hide(); 

Ben de denedim (bu benim için çalışmıyor) gibi bir şey: my sözdiziminde yanlış bir şey

var arr = $('.foo').get(); 
arr[0].hide(); 

var mı? Burada yapmaya çalıştığım şeyi yapmanın en iyi yolu nedir?

Teşekkürler! Her ikisi de jQuery nesnesindeki bir DOM öğesine başvuru döndürür ve 0 öğelerinde, jQuery yöntemlerini DOM öğelerinde kullanamazsınız.

cevap

17

[0] dizi gösterimi ve .get() method. yeni bir jQuery nesnesi döndüren çünkü

yerine eq() method deneyin: Bir DOM öğesine bir başvuru almak için dizi gösterimini ya .get() kullandığını olması da

$('.foo').eq(0).hide(); 

Not Eğer sonra direkt almak anlamına gelir DOM öğesinin özelliklerine erişim, örneğin:

var firstElId = $('.foo')[0].id; 

... ikinci not ile $('.foo')[0] olacağı undefined ve seçiciyle eşleşen öğe yoksahata verecektir.

+0

Teşekkür: Sen .hide gibi yöntemler()

var bar = $('.foo')[n]; var $bar = $(bar); $bar.hide(); 

kullanmak Ya da sadece jQuery'nin eq() yöntemini kullanmak için bir jQuery nesnesi geri dönüştürmek gerekir! Tam olarak bilmem gereken şey bu. –

6

Bir jQuery nesnesini bir dizi olarak referansladığınızda, bir DOM öğesini geri alırsınız.

var bar = $('.foo').eq(n); 
bar.hide(); 
+0

İlk örnek çalışıyor, ancak bunu yapmak için oldukça ağır bir yol. İkinci örnekte olduğu gibi '.eq()' yi kullanmanız daha iyidir. – saluce