2011-06-22 123 views
5

JavaScript的種類重新定義了數組意味着什麼,因爲數組是具有.length屬性和方法(如.slice().join())的對象。什麼是jQuery對象?

jQuery將jQuery對象定義爲「Array like」,因爲它具有length屬性,但它沒有像join()這樣的特定數組方法。

如果我要將jQuery對象定義爲對象,而忘記提及與數組有關的任何事情,我該如何定義它?除了長度以外還有什麼屬性?

我想所有的方法都是你在文檔中看到的,遠遠超過了數組中方法的數量。

+0

可能重複[什麼是JavaScript數組?](http://stackoverflow.com/questions/6445010/wha t-is-a-javascript-array) – Neal

+1

jQuery文檔包含您需要的所有信息:http://docs.jquery.com/Main_Page – FishBasketGordo

回答

26

jQuery對象是類似數組的,這意味着它包含零個或多個索引(名稱是以零開始的正整數的屬性)。除了這些指標,一個jQuery對象包含以下屬性:

  • length
  • context
  • selector

而且還約140繼承的方法(這是本jQuery.prototype對象上定義 - 你可以做console.dir(jQuery.prototype)獲取完整列表...)。

請注意,jQuery對象不包含包含(或繼承)Array方法(slice,substr,...)。如果你想在你的jQuery對象上執行這些方法,請使用call/apply


例如,如果你在頁面上3個textarea元素,你這樣做:

var j = $('textarea'); 

那麼這個j jQuery對象將包含這些屬性:

  • 0 - 參考到第一個TEXTAREA元素
  • 1 - 對第二個TEXTAREA元素的引用
  • 2 - 參照第三TEXTAREA元素
  • length - 這是3
  • context - 參照document對象
  • selector - 這是'textarea'
  • 加上所有那些繼承的方法...
+0

+1代碼示例,非常清晰 – Philip007

2

jQuery對象是具有

  • length屬性
  • 數字從選擇引用項的屬性(0,1,2,3 ...)
  • 綁定到對象jQuery函數
  • 附加jQuery的屬性

長度和數值屬性允許對象等的陣列響應。您可以在for循環中運行它,或者使用mapeach等功能。

我建議使用瀏覽器的調試器或Firebug並檢查一個jQuery對象。這會教你很多關於它的結構。