我已经设法做一个公平的位与jquery与这个小细节躲过我:它是如何应用下标运算符的jquery调用的结果,这似乎返回的DOM元素在该索引? Javascript不支持运算符重载,所以我猜它实际上是返回类型'数组',但你也可以在这个数组上使用jquery方法的全部范围,但是只查看源代码,我只看到'slice'和“推动”添加应用到Array.prototype ...jquery对象性质
我可以有这个主题领域内的一些问题,一旦我知道答案,这一个...
我已经设法做一个公平的位与jquery与这个小细节躲过我:它是如何应用下标运算符的jquery调用的结果,这似乎返回的DOM元素在该索引? Javascript不支持运算符重载,所以我猜它实际上是返回类型'数组',但你也可以在这个数组上使用jquery方法的全部范围,但是只查看源代码,我只看到'slice'和“推动”添加应用到Array.prototype ...jquery对象性质
我可以有这个主题领域内的一些问题,一旦我知道答案,这一个...
您可以访问的任何的性能使用“数组样式”的JavaScript对象方括号语法:
var someObj = {
someProp : "test"
};
alert(someObj["someProp"]); // alerts "test"
jQuery已将su请注意,从$()
函数返回的对象具有与数字索引对应的属性,以及比最高数字索引高一个的length
属性。
someObj[0] = "test";
someObj[1] = "whatever";
someObj.length = 2;
简单(非jQuery的)演示:http://jsfiddle.net/nnnnnn/pguDH/
注意在实践对象的属性名称总是字符串。如果您提供一个数字,它将被转换为一个字符串。甚至可以用字符串访问“真实”阵列元素:
someArray["1"]
// give same results as
someArray[1]
啊我看到了,所以它没有按照我的想法返回一个数组。聪明。 JS对我来说似乎是一种有趣的语言,在某些方面非常强大,而不是其他方面。 无论如何,thx为清理起来。 – 2012-08-12 08:01:14
不客气。如果你真的需要标准数组中的DOM元素(因为,例如,你想能够使用其他数组方法),你可以使用jQuery的['.toArray()'方法](http://api.jquery的.com /指定者/)。或者,根据你想要做什么,你可以使用'.apply()'或'.call()'在jQuery对象上使用'Array'方法。 – nnnnnn 2012-08-12 08:08:20
@Fresheyeball - 您的编辑不正确。 Rob F正在具体询问_jQuery_对象,以及它们为什么像数组一样行事。 (答案与_JavaScript_对象在一般意义上的工作方式有关,但仍然...) – nnnnnn 2012-08-12 08:02:04
@nnnnnn我的歉意,我一定误解了这个问题。 – Fresheyeball 2012-08-12 08:03:08