【发布时间】:2019-09-26 17:27:00
【问题描述】:
我正在尝试将我的 JSON 数据着色为 HTML。所以我使用 JSON 数据并将其设置为变量。然后我分配了更多变量来访问 JSON 数据中我想要的每个元素的数据。现在,我有变量形式的数据,但我无法使用 document.getElementById 将其传递给 HTML。这可能是因为我对同一个变量有不同的数据,所以只有最后一个元素会打印出 Id,因为它是唯一的。所以,请帮助我如何将 JS 变量数据打印到 HTML 中。
var obj = [{
"client_msg_id": "3a223f8d-b5aa-4c9c-9b63-045ec6f90b58",
"type": "message",
"text": "hey there",
"source_team": "TN4AF0V5W",
"team": "TN4AF0V5W",
"user_profile": {
"real_name": "marvelmohinish99",
"team": "TN4AF0V5W"
}
},
{
"client_msg_id": "3a223f8d-b5aa-4c9c-9b63-045ec6f90b58",
"type": "message",
"text": "welcome",
"source_team": "TN4AF0V5W",
"team": "TN4AF0V5W",
"user_profile": {
"real_name": "marvelmohinish99",
"team": "TN4AF0V5W"
}
},
{
"client_msg_id": "3a223f8d-b5aa-4c9c-9b63-045ec6f90b58",
"type": "message",
"text": "Help me",
"source_team": "TN4AF0V5W",
"team": "TN4AF0V5W",
"user_profile": {
"real_name": "marvelmohinish99",
"team": "TN4AF0V5W"
}
}
];
for (var i in obj) {
var type = obj[i].type;
var text = obj[i].text;
var source_team = obj[i].source_team;
var user_profile = obj[i].user_profile;
var real_name = user_profile.real_name;
console.log(source_team + " : " + real_name);
console.log(text);
document.getElementsByClassName('a1').innerHTML = text;
}
<h2>Convert a string written in JSON format, into a JavaScript object.</h2>
<p id="output"></p>
<p class="a1"></p>
【问题讨论】:
-
尝试将
var i in obj更改为let i in obj -
不,没有用。
-
getElementsByClassName('a1')返回一个“类似数组”的对象。所以试图改变该对象的innerHTML属性是行不通的。只是要清楚。您想根据 JSON 中的内容动态生成新元素,还是想修改现有元素? -
您使用 getElement(s)ByClassName 然后您尝试将 array.innerHTML 设置为文本,您需要使用 getElement 而不是 getElement(s)
-
let i of obj遍历对象的属性,i是属性。
标签: javascript arrays json multidimensional-array