1

我已经设法用 jquery 做了一些事情,但这个小细节却让我望而却步:我如何将下标运算符应用于 jquery 调用的结果,这似乎返回了该索引处的 dom 元素?Javascript 不支持运算符重载,所以我猜它实际上返回类型“数组”......但您也可以在这个数组上使用整个 jquery 方法,但查看源代码我只看到“切片”和'push' 添加到 Array.prototype...

一旦我知道了这个问题的答案,我可能在这个主题领域还有一些问题......

4

1 回答 1

3

您可以使用“数组样式”方括号语法访问任何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]
于 2012-08-12T07:55:04.653 回答