我已经设法用 jquery 做了一些事情,但这个小细节却让我望而却步:我如何将下标运算符应用于 jquery 调用的结果,这似乎返回了该索引处的 dom 元素?Javascript 不支持运算符重载,所以我猜它实际上返回类型“数组”......但您也可以在这个数组上使用整个 jquery 方法,但查看源代码我只看到“切片”和'push' 添加到 Array.prototype...
一旦我知道了这个问题的答案,我可能在这个主题领域还有一些问题......
您可以使用“数组样式”方括号语法访问任何JavaScript 对象的属性:
var someObj = {
someProp : "test"
};
alert(someObj["someProp"]); // alerts "test"
jQuery 只是确保从$()
函数返回的对象具有对应于数字索引的length
属性,以及比最高数字索引高 1 的属性。
someObj[0] = "test";
someObj[1] = "whatever";
someObj.length = 2;
简单(非 jQuery)演示:http: //jsfiddle.net/nnnnnn/pguDH/
请注意,实际上对象属性名称始终是字符串。如果您提供一个数字,它将被转换为一个字符串。甚至“真实”的数组元素也可以用字符串访问:
someArray["1"]
// give same results as
someArray[1]