【问题标题】:What is a jQuery Object?什么是 jQuery 对象?
【发布时间】:2011-09-20 16:07:06
【问题描述】:
JavaScript 重新定义了数组的含义,因为数组是一个具有.length 属性和.slice() 和.join() 等方法的对象。
jQuery 将 jQuery 对象定义为“Array like”,因为它具有 length 属性,但没有特定的数组方法,例如 join()。
如果我将 jQuery 对象定义为一个对象,而忘记提及与数组有关的任何事情,我将如何定义它?它除了长度还有什么属性?
我猜所有的方法都是你在文档中看到的,远远超过了数组中方法的数量。
【问题讨论】:
标签:
terminology
jquery
definitions
【解决方案1】:
jQuery 对象类似于数组,这意味着它包含零个或多个索引(名称是从零开始的正整数的属性)。除了这些索引之外,jQuery 对象还包含以下属性:
还有大约 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'
- 加上所有继承的方法...
【解决方案2】:
jQuery 对象是一个具有
的对象
- 长度属性
- 引用来自选择项的数字属性 (0,1,2,3...)
- 与 jQuery 函数的绑定
- 其他 jQuery 属性
长度和数值属性允许对象像数组一样响应。您可以在 for 循环中运行它,或在其上使用 map 或 each 等函数。
我建议使用浏览器的调试器或 Firebug 并检查 jQuery 对象。这将教会你很多关于它的结构。