2009-11-03 54 views
0

我有一些javascript:动态值分配给基于AJAX的内容ID

eval('var incomingJSON =' + ajaxObj.responseText); 
for (p in incomingJSON.common) { 
    document.getElementById(p).value = incomingJSON.common.p; 
} 

其中ajaxObject.responseText是:

{ 
    "common": { 
     "item1": "1", 
     "item2": "2", 
     "item3": "3", 
     "item4": "4", 
     "item5": "5" 
    } 
} 

下面这行工作:

document.getElementById(item1).value = incomingJSON.common.item1; 

然而,incomingJSON.common.p评估为“未定义”。分配的左侧工作正常。给定正确名称,访问该对象中的值的正确方法是什么?

回答

1

我认为你正在寻找的括号标记语法:

document.getElementById(p).value = incomingJSON.common[p]; 
+1

这就是所谓的括号标记。调用数组符号可能导致混淆,所以请不要。 https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Member_Operators – Quentin 2009-11-03 16:35:32

+0

我知道这会很容易。谢谢。 – 2009-11-03 16:39:12