为了保持这个问题的限制,这里是W3Schools的一个例子,我扩展了一下,以便了解我想要完成的任务。
HTML:
<p id="demo"></p>
JS
var objA = [
{ "name":"John", "age":30, "city":"New York"},
{ "name2":"John2", "age2":302, "city2":"New York2"}
];
document.getElementById("demo").innerHTML = objA.name;
这打印未定义。我做错了什么?
谢谢!
经过审核......我现在有了这个......
<p id="demo"></p>
<p id="demo2"></p>
for(var i=0;i < objA.length;i++){
document.getElementById("demo").innerHTML += objA[i]["name"];
document.getElementById("demo2").innerHTML += objA[i]["name"];
}
如果我离开= + in,它会在两个p标签中打印两个JohnJohn2。如果我删除+,它会在两个标签中仅打印John2。第一个p标签应该打印john,第二个应该打印john2
答案 0 :(得分:2)
而不是
objA.name
你做
objA[0][“name”]
答案 1 :(得分:1)
For循环是这样的
for(var i=0;i < objA.length;I++){
//whatever you want like objA[i]
}
答案 2 :(得分:0)
评论是代码的占位符。不要从字面上理解。
答案 3 :(得分:0)
首先让我们从头开始。您的JSON在一个数组中。所以你不需要名字和名字2。只要将它命名为“名称”即可。
var objA = [
{ "name":"John", "age":30, "city":"New York"},
{ "name":"John2", "age":302, "city":"New York2"}
];
然后为你的for循环做这个
for(var i=0;i < objA.length;i++){
document.getElementById("demo"+(i+1) ).innerHTML += objA[i]["name"];
document.getElementById("demo"+(i+1)).innerHTML += objA[i]["name"];
}
请记住将p标签ID重命名为
<p id="demo1"></p>
<p id="demo2"></p>