2011-06-22 93 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对象。这会教你很多关于它的结构。