JavaScript类重新定义了Array的含义,因为数组是具有.length属性的对象,以及.slice()和.join()等方法.
jQuery将jQuery对象定义为“Array like”,因为它具有length属性,但它没有某些数组方法,如join().
解决方法
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元素的引用>长度 – 这是3> context – 对文档对象的引用>选择器 – 这是’textarea’>加上所有那些继承的方法……