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