好的,这很奇怪。我使用PLUpload,它有一个onComplete
函数,返回一个名为info
的变量。以下是Chrome Dev Console中的返回内容。
Object {response: "[{"id":"65","series":"","part":"","title":"","subt…,"file":"","product":"","type":"1","status":"2"}]", status: 200}
var response = $.parseJSON(info['response']);
$.each(response, function(key, value) {
console.log(value);
$.each(value, function(k, v) {
console.log(v);
});
});
console.log(value)
在Chrome开发者控制台中为我提供了此信息:
Object {id: "69", title: "", ogv: "", webm: "", length: "0:12"…}
我可以调低箭头,看看我的所有元素。所以我认为在$.each
上进行value
会产生除console.log(v)
回声之外的任何内容。
但如果我console.log(value['id'])
我得到65.那就行了。
为什么我不能使用$.each
函数迭代此对象?
答案 0 :(得分:1)
这可以被认为是jQuery中的一个错误,但是你迭代的对象有一个length
属性。显然,$.each
使用length
进行迭代。你最好使用for..in
。
答案 1 :(得分:0)
$。每个无法迭代给定对象,因为您使用长度作为键,这也是javascript方法,这是$ .each的jQuery Bug不使用hasOwnProperty方法
最好使用核心javascript for..in
方法与 hasOwnProperty 检查
var op = { "id":"69", "title":"", "ogv":"", "webm":"", "length":"012" };
for(var i in op) {
if(op.hasOwnProperty(i)) {
console.log(i + ':' + op[i] + '\n');
}
}