2013-08-29 38 views
0

我有一个名为data的JavaScript对象。我使用下面的代码到对象的按键排序:通过密钥访问JavaScript对象

var index = []; 

// build the index 
for (var x in data) { 
    index.push(x); 
} 

// sort the index 
index.sort(function (a, b) { 
    return a == b ? 0 : (a > b ? 1 : -1); 
}); 

然后我想在下面的方式特定的索引键来访问该值:

for (var i=0; i<index.length; i++) { 
    var key = index[i]; 
    document.getElementById(key).value = data.key; 
} 

但是我越来越不确定为data.key值。谁能建议为什么

+0

我已经编辑从你的问题 “JSON” 一词。 JSON意味着一个字符串:如果你可以用'for()'结构来循环它,它不能是一个字符串。 –

回答

3

更改为

document.getElementById(key).value = data[key]; 

如果您要访问存储在变量中的关键,你必须使用括号标记。在您的代码中,JavaScript将搜索名为“key”的密钥并因此失败。

例子:

var key = 'test'; 

console.log(data.key); // yields content of data.key 
console.log(data[key]); // yields content of data.test 
+0

澄清:“document”对象是DOM的一部分,所以它被用来处理HTML文档,而不是JavaScript对象。 –

0

如何

Object.keys(data)[key] ? 

不知道它的工作,而不显示数据的结构。

编辑:这样根据数字索引(0,1 ...,n)的,而不是按名称检索对象的关键。