【发布时间】:2020-05-19 15:16:24
【问题描述】:
我正在尝试将数据动态呈现到我的 HTML 中,当点击 selectPlayer 时,它应该显示播放器列表的下拉列表并能够选择
选中的同时,统计信息应出现在<div id="stats"></div>
我可以循环遍历对象,但如何将其动态呈现到 HTML 中?
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="./static/style.css" />
<title>card</title>
</head>
<body>
<header>
<h1 id="selectPlayer">Select a player...</h1>
</header>
<div id="stats">
<div id="name"></div>
<div id="position"></div>
</div>
<script>
const statsData = {
players: [{
player: {
info: {
positionInfo: "Defender"
},
name: {
first: "Toby",
last: "Alderweireld"
},
currentTeam: {
name: "Tottenham Hotspur"
}
},
stats: [{
name: "goals",
value: 5
},
{
name: "losses",
value: 20
},
{
name: "wins",
value: 48
},
{
name: "draws",
value: 23
}
]
},
{
player: {
info: {
positionInfo: "Midfielder"
},
name: {
first: "Yaya",
last: "Toure"
},
currentTeam: {
name: "Manchester City"
}
},
stats: [{
name: "goals",
value: 65
},
{
name: "losses",
value: 49
},
{
name: "wins",
value: 149
},
{
name: "draws",
value: 35
}
]
},
{
player: {
info: {
positionInfo: "Attacker"
},
name: {
first: "Riyad",
last: "Mahrez"
},
currentTeam: {
name: "Leicester City"
}
},
stats: [{
name: "goals",
value: 22
},
{
name: "losses",
value: 23
},
{
name: "wins",
value: 35
},
{
name: "draws",
value: 21
}
]
}
]
};
document.getElementById(
"selectPlayer"
).innerHTML = `<h1>${statsData.players}<h1>`;
document.getElementById(
"stats"
).innerHTML = `<h2> ${statsData.player.stats}<h2>`;
</script>
</body>
</html>
在这里欣赏了不少代码,但似乎有点卡住了
【问题讨论】:
-
循环是这里的关键,但我们需要知道输出看起来如何才能进一步提供帮助。查看
Object.entries创建一个可迭代对象,查看for...of循环遍历可迭代对象。 -
这里不涉及 JSON。 JSON 是一种文本格式,而您只有 JavaScript 对象和数组。
-
另外,我在您的代码周围添加了一个堆栈片段。单击运行代码 sn -p,您将看到错误显示。对该阵列进行一些研究。您还可以查看问题右侧“相关”列中的一些链接。例如,Loop through an array in JavaScript 和 How do I loop through or enumerate a JavaScript object?
标签: javascript html loops object javascript-objects