为了限制这个问题,这里有一个来自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"];
}
如果我保留 =+,它会在两个 p 标签中打印两个 JohnJohn2。如果我删除 +,它会在两个标签中只打印 John2。第一个 p 标签应打印 john,第二个应打印 john2
https://jsfiddle.net/gs4zdupn/
而不是
objA.name
是吗
objA[0][“name”]
For 循环是这样的
for(var i=0;i < objA.length;I++){
//whatever you want like objA[i]
}
注释是代码的占位符。不要从字面上理解。
首先,让我们从头开始。您的 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>