2011-03-06 69 views
7

我一直在爲自己的個人JavaScript庫工作了一段時間,並且工作正常。但我一直想知道jQuery的返回對象。jquery究竟返回什麼對象?

可以說你有幾個div在你的DOM中,你選擇他們$("div") jquery實際上會返回控制檯日誌中的選定節點(作爲一個對象/數組?),你可以將它們鼠標移到它們的位置在文件中。

我的對象實際上返回整個對象本身,因此,如果調用kj("div")(其中kj是我對象名字)就說明了這樣的控制檯日誌:

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

我的問題是,我怎麼能讓它返回類似jQuery的東西?

在此先感謝。

+5

*我怎樣才能讓它返回類似jQuery的*爲什麼重新發明輪子?有沒有什麼你試圖做的,jQuery不能? – 2011-03-06 04:40:05

+3

爲了改進程序員的目的,重新發明車輪沒有任何問題。 – 2011-03-06 05:35:28

+0

@Eric,不。我們都應該決定一個框架來統治它們,並拋出其他所有東西。當我們處理它時,不妨使用一種語言並將其他語言拋棄。節點可以照顧服務器,併爲客戶端定期提供'JS'。 [/ sarcarrogance] = P – 2011-03-06 06:04:20

回答

3

我認爲你要找的是在jQuery中元素數組是主要對象,方法和其他信息作爲屬性連接到該數組。

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

var d = $$('div'); 

因爲typeof Array === 'object'您可以任意地將方法和屬性附加到數組。

0

在此頁面打開控制檯並執行console.log($('#custom-header')),您將得到結果。我認爲,jQuery會返回一個對象,其中使用了以下方法和屬性,如hide()show()。我認爲最好使用jquery來創建另一個庫。

>>> 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中的事物中。這些引用比「html的內容」複雜一點,因爲有附加事件。 JQuery還具有非常高效的「選擇器」,它遍歷dom並構建這些引用。我不得不說我贊同Scrum Meister。 JQuery現在甚至是微軟開發中的公認標準(WOOHOO!)。爲什麼不使用它?