2013-04-12 173 views
-3

我有一个JSON文件返回我是这样的:未定义JavaScript变量在for循环

{"id0":"58955","id1":"15614","id2":"897987"} 

我解析JSON,并与例如identifier.id1

我要显示所有调用的值我的标识符在for循环中,我尝试过,但它来到“undefined undefined undefined”。如果我在我的循环中手动将identifier.idk替换为identifier.id1,它将起作用并显示15614. 我的错误在哪里?

这里是我的代码

identifier = JSON.parse(output) 

var html = '<table border="0">'; 
html += '<tr valign="top" ><td><b>Identifiers :</b></td>'; 


for (var k = 0; k < 3; k++) 
    { 
     html += '<tr>'; 
     html += identifier.idk; 
     html += '</tr>'; 
}; 

html += '</tr></table>'; 

回答

7

因为它是寻找你的对象IDK! JavaScript不会奇迹般地知道你想要字符串“id”和整数k连接在一起。你需要告诉它这样做。

使用括号表示法。

identifier["id" + k]; 

现在对于你的下一个问题,你没有tds!我想你想在你的循环中使用td而不是tr。

+0

这应该适合你iLearnToDev .... !!! – sven

+0

非常感谢,这是一个新手的错误,我没有意识到! – iLearnToDev

1

而不是identifier.idk使用identifier["id"+k]

说明:

identifier.idk查找一个名为字面上idk您的标识对象内的财产;属性引用的[]形式允许您构造一个字符串并将其用作属性名称。

作为一般性评论,可能会更好地在其中创建数组,而不是通过字符串操作来动态创建属性名称。