这个问题最主要的原因可能是我现在非常困倦。
我有一个数组,它是我发起的:
var cells = [];
然后我在其中放入一些值(jQuery对象),例如:
$("td").each(function () {
var td = $(this);
cells[td.attr("id")] = td;
});
现在我的问题来了。这段代码:
$(cells).each(function (i) {
console.log(this) // firebug console
});
什么日志都没有。当我将关联数组更改为正常数组时,通过替换
cells[td.attr("id")] = td;
使用
cells.push(td);
它工作正常。
此外,当我尝试使用for..in循环进行迭代时,它也会按预期工作。
for (var cell in cells) {
console.log(cells[cell]);
}
这是不是意味着jQuery的.each方法不接受关联数组,或者我做错了什么?
发布于 2011-10-06 16:21:53
您似乎认为Javascript的数组是关联的,但事实并非如此。您可能正在寻找对象(或散列):
var cells = {}; // Not [].
$("td").each(function() {
var td = $(this);
cells[td.attr("id")] = td;
});
$.each(cells, function() {
console.log(this); // This should work as expected.
});
发布于 2011-10-06 16:21:47
使用$.each(cells, function(i) { ... })
而不是$(cells).each(function...)
$.each()
函数与$(selector).each
函数不同。
https://stackoverflow.com/questions/7671727
复制相似问题