2010-08-27 51 views
14

allFields nedir

var username = $("#username"), 
       password = $("#password"), 
       allFields = $([]).add(username).add(password); 
? $ ([]) Nedir?

JavaScript/jQuery bir acemi, bunu daha önce $ ([]) notasyonu görmedim olmak ve onun ilişkili yöntemlerin ilgileniyorum.

onun "([]) $", bu aramak için yanıltıcı olabileceğini göz önüne alındığında. Ve Javascript'te bir dizi Google dizisi araştırması (bu şeyin bir çeşit dizidir), tanıdık olduğum tipik dizileri ortaya çıkarır.

Yani $ ([]) nedir? Birisi bana bazı belgelere işaret edebilir mi? Bu garip şeyi nasıl kullanacağımı öğrenmekle ilgileniyorum.

+0

ben 'allFields = $ ([kullanıcı adı, şifre])' Bir eqiuvalent statment olacağına inanıyorum.JQuery tarafından genişletilen bir diziye ihtiyacınız yoksa, sadece '' allFields = [kullanıcı adı, şifre] 'yapardı. –

+0

@Chris Haykırışları: yakın, ama maalesef '$ ([username [0], şifre [0]])' olmalıdır. –

cevap

12

jQuery fonksiyonu DOM düğümlerinin bir dizi kabul eder. bu dizide geçen tüm DOM öğelerini sararak bir jQuery nesne döndürür örneğin

$([document.body]) . Bununla birlikte, örneğinizde, başlayacak hiçbir DOM nesnesi olmadığından ve sadece boş bir dizi olduğundan, boş bir diziyi bile geçmeye gerek yoktur. Argümansız

jQuery işlevinin çağrılması

boş kümesi döndürür.

bir argüman boş jQuery dizi döner jQuery() metodu çağırarak, bir boş Set jQuery 1.4 itibarıyla

dönen jQuery dokümanlar 'dan alınmıştır. JQuery'nin önceki sürümlerinde, bu, belge düğümünü içeren bir kümeyi döndürür. Bunun yerine diğer cevaplar söylediğim gibi

$().add(username).add(password); 

denilen ve dokümanlar demek olsaydı

Yani, örnek boş bir dizi v 1.4 öncesinde gerekli geçerek aynı şekilde çalışırdı.

+0

+1 İyi cevap. Yeni davranışı olduğunu unuttum '$()' boş bir nesne döndürür. – user113716

+0

Teşekkürler, aradığım şey buydu. Mükemmel cevap. –

+1

@Tina - Anurag'ın en açık açıklamasını yaptığını düşünüyorsanız, bu cevabı "kabul etmeyi" unutmayın. Solundaki büyük onay işaretini tıklayarak kabul edersiniz. : o) – user113716

6

[] Boş bir dizidir. $() Ile sarmak, jQuery'nin işlevleriyle aşırı doldurur.

var foo = []; 
+0

jQuery işlevleri ile aşırı doldurur mu? Örneğiniz göz önüne alındığında, eğer '$ (foo)' yapsaydınız, foo'ya yapılan atıfta sadece normal bir diziye atıfta bulunuyorsunuz. – user113716

+0

sıkı olmak, $ (foo) sonucunun aşırı şarj olduğunu, foo "normal" kalır. – fcingolani

+1

"aşırı yükleme" bir dolar işareti fonksiyonu için talihsiz bir tanımdır. –

5

Bir jQuery nesnesinin oluşturulması geçirilen boş bir dizidir: Bir dizide bu şekilde oluşturabilir JavaScript yılında

. Muhtemelen bir şeyi başlatmak için.

en azından jQuery son sürümlerinde, gerekli olmamalıdır. alert() nesneye bir elementi gösterdiği gibi, http://jsfiddle.net/MAzLN/

İşleri cezası:

İşte Array olmadan bir örnek.

jQuery, nesne oluşturulduğunda 0 için length özelliğini başlatır, dolayısıyla geçmişte gerekmedikçe amacın ne olduğundan emin değilim.

+0

Whoa, çok güzel bağlantı! Teşekkür ederim! –

3

Ben boş bir jQuery koleksiyon nesnesi yaratır inanıyoruz.

+0

Daniel'in cevabını eklemek için, jQuery'nin daha eski sürümlerinde boş bir dizi geçirmeniz gerekmediğinden boş bir jQuery nesnesi oluşturamadık. – CalebD