什么是jQuery对象?
JavaScript类重新定义了Array的含义,因为数组是具有.length
属性的对象,以及.slice()
和.join()
。
jQuery将jQuery对象定义为“Array like”,因为它有一个length
属性,但它没有某些数组方法,如join()
。
如果我将jQuery对象定义为对象,而忘记提及与数组有关的任何内容,我将如何定义它? 除长度外还有哪些属性?
我想所有的方法都是你在文档中看到的,远远超过了数组中的方法数量。
jQuery对象是类似数组的,这意味着它包含零个或多个索引(名称是从零开始的正整数的属性)。 除了这些索引之外,jQuery对象还包含以下属性:
-
length
-
context
-
selector
还有大约140个inheritance的方法(在jQuery.prototype
对象上定义 – 你可以做console.dir(jQuery.prototype)
来获得一个完整的列表……)。
请注意,jQuery对象不包含(或inheritance)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'
- 加上所有那些inheritance的方法……
jQuery对象是一个具有的对象
- 一个长度的财产
- 引用select(0,1,2,3 …)项的数字属性
- 绑定到jQuery函数
- 额外的jQuery属性
length和numeric属性允许对象像数组一样响应。 您可以在for
循环中运行它,也可以使用map
函数或each
函数。
我建议使用浏览器的调试器或Firebug并检查jQuery对象。 这将教会你很多关于它的结构。