我有以下对象:
var objectVar = {
4 : { "key" : "key-name4", "item4" : {} },
3 : { "key" : "key-name3", "item3" : {} }
}
然后我尝试以下方法:
$(objectVar).each(function(index,record){
console.log(record); // Loops Only Once and Logs Full Object
});
任何人都可以帮我解释为什么$ .each();函数inst迭代主对象中的子对象吗?
任何帮助将不胜感激!
答案 0 :(得分:9)
“任何人都可以帮我解释为什么$ .each();函数会迭代主对象中的子对象吗?”
要循环子对象,需要子循环。
虽然像你一样使用each()
[docs]方法,通常有时会工作(就像现在这样),但它实际上是指DOM元素。
而是使用jQuery.each()
[docs]方法:
$.each( objectVar, function(index,record){
console.log(record);
// start a loop on the current record in the iteration
$.each( record, function( index2, sub_record ) {
console.log( index2, sub_record );
});
});
现在,您的循环将扩展到第一级嵌套对象。
如果您不确定整体结构,并希望枚举整个深度,则需要测试遇到的每个值,看看是否应该枚举。
答案 1 :(得分:3)
$.each(objectVar,function(index,record){
console.log(record);
});
答案 2 :(得分:3)
答案 3 :(得分:2)
虽然jQuery很棒,但你真的没有使用它。循环遍历对象的JavaScript非常简单:
var record;
for(var key in objectVar) {
record = objectVar[key];
}
答案 4 :(得分:1)
您对非jQuery对象使用$.each()
错误:
$.each( objectVar, function( index, record ){
console.log( record );
});