以下脚本返回错误“无法读取未定义的属性'1',但我可以在Chrome控制台中正确读取该对象。我还尝试了obj [0] .NodeName [1],它在Chrome控制台中显示了值,但是错误说它无法将属性innerHTML设置为null“。
将JSON元素读入HTML中的正确语法是什么?
<script>
var nodeList='[{"NodeName":["Node1","Node2","Node3","Node4","Node5","Node6" ]}]';
obj = JSON.parse(nodeList);
document.getElementById("NodeName").innerHTML=obj.NodeName[1];
</script>
NODE Name: <span id="NodeName"></span><br>
答案 0 :(得分:4)
脚本在文档加载完毕之前运行,而NodeName
元素尚未存在于文档中。
在onload
事件处理程序中运行脚本,或在span之后移动脚本元素。
答案 1 :(得分:0)
<script>
var nodeList='[{"NodeName":["Node1","Node2","Node3","Node4","Node5","Node6" ]}]';
obj = JSON.parse(nodeList);
document.getElementById("NodeName").innerHTML=obj[0].NodeName[1];
</script>
请参阅此jsfiddle http://jsfiddle.net/sajith/n2xE9/
答案 2 :(得分:0)
您添加变量nodeList
var nodeList='[{"NodeName":["Node1","Node2","Node3","Node4","Node5","Node6" ]}]';
然后将其解析为对象。
obj = JSON.parse(nodeList);
所以你应该使用:
document.getElementById("NodeName").innerHTML=obj[0].NodeName[1];
答案 3 :(得分:0)
解决方案是将span标记放在脚本上方,如此...
NODE Name: <span id="NodeName"></span><br>
<script>
var nodeList='[{"NodeName":["Node1","Node2","Node3","Node4","Node5","Node6" ]}]';
obj = JSON.parse(nodeList);
document.getElementById("NodeName").innerHTML=obj[0].NodeName[1];
</script>
我已经尝试过使用上面的脚本语法,但在脚本修复问题之前移动了span标记。显然这已经在之前的帖子中得到了解答,但我无法找到它。
谢谢大家的帮助。