2011-03-06 20 views
7

Bir süredir kendi kişisel JavaScript kitaplığımda çalışıyorum ve iyi çalışıyor. Ama jQuery dönüş nesnesini merak ettim.JQery tam olarak hangi nesneyi döndürür?

DOM'unuzda birkaç tane div bulunduğunu ve bunları $("div") jQuery ile seçebildiğinizi söylerseniz, konsol günlüğünde gerçekte seçilen düğümleri (nesne/dizi olarak mı) döndürür ve bunların nerede olduğunu görmek için fareyle üzerine gelebilirsiniz. belgelerde.

Eğer kj("div") o konsol günlüğüne böyle gösterir (kj benim nesne adıdır) ararsanız Benim nesne aslında, bütün nesneyi kendisi verir:

> kj 
    > elements: Array[10] 
    > length : 10 
    > more stuff 

Sorum şu, Nasıl yardımcı jQuery gibi bir şey döndürmek mi?

Şimdiden teşekkürler.

+5

* jQuery gibi bir şeyi nasıl iade edebilirim * Tekerleği neden yeniden icat ediyor? Bu jQuery yapamayacağın bir şey var mı? –

+3

Bir programlayıcı olarak iyileştirmek amacıyla tekerleği yeniden icat etmekte yanlış bir şey yoktur. –

+0

@Eric, nope. Hepsine hükmedecek tek bir çerçeve üzerinde karar vermeli ve HER ŞEYİ başka bir şeye atmalıyız. Biz buradayken, sadece bir dil kullanabilir ve diğerlerini de atabilirsin. Düğüm sunucuyla ilgilenebilir ve istemci için düzenli ol 'JS. [/ sarcarrogance] = P –

cevap

3

Aradığınızı, jQuery öğesinde, öğe dizisinin birincil nesne olduğunu, yöntemlerin ve diğer bilgilerin bu diziye özellikler olarak bağlı olduğunu düşünüyorum.

function $$(tagname){ 
    var x = document.getElementsByTagName(tagname); 
    x.moreStuff = true; 
    return x; 
} 

var d = $$('div'); 

typeof Array === 'object' çünkü keyfi bir diziye yöntemleri ve özellikleri ekleyebilir.

0

Bu sayfada konsolu açın ve console.log($('#custom-header')) yapın ve sonucu elde edersiniz. Ben jquery hide() ve show() ve show() üzerinde kullandığımız aşağıdaki yöntem ve özellik ile bir nesne döndürecektir. Başka bir kütüphane oluşturmak için jQuery kullanmanın daha iyi olduğunu düşünüyorum.

>>> console.log($('#custom-header')) 
[div#custom-header] 



0 
    div#custom-header 


context 
    Document what-is-the-jquery-returned-object-exactly 


jquery 
    "1.4.4" 


length 
    1 


selector 
    "#custom-header" 


init 
    function() 


TextAreaResizer 
    function() 


_toggle 
    function() 


add 
    function() 


addClass 
    function() 


addSpinner 
    function() 


addSpinnerAfter 
    function() 


after 
    function() 


ajaxComplete 
    function() 


ajaxError 
    function() 


ajaxSend 
    function() 


ajaxStart 
    function() 


ajaxStop 
    function() 

    ....... 
    ....... 
    ....... 
3

JQuery, dom içindeki nesnelere karşılık gelen bir nesnenin ne yaptığıyla ilgili referansları topluyor. Bu referanslar, eklenen olaylar olduğu için sadece "html'nin içeriğinden" biraz daha karmaşıktır. JQuery ayrıca dom üzerinde yineleyen ve bu referansları inşa eden çok verimli "Selektörlere" sahiptir.

Scrum Meister ile aynı fikirdeyim. JQuery bu günlerde bile Microsoft geliştirme için kabul edilen bir standarttır (WOOHOO!). Neden kullanmıyorsun?

İlgili konular