我可以获取 json 数据,但我无法在 HTML 中显示它(javascript)


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie-edge">
</head>
<body>
<table class="table table-stripped">
<tbody id="data">

</tbody>
</table> 


<script>
fetch("wig.json").then(
res=>{
res.json().then(
data=>{
console.log(data);
if(data.length > 0){
var tmp = '';
data.forEach((u)=>{
tmp +="<tr>";
tmp += "<td>"+u.Name+"</td>";
tmp += "<td>"+u.Oprice+"</td></tr>";
})
document.getElementById("data").innerHTML = tmp;
};
}
)
}
)
</script>
</body> 
</html>

我可以获取本地json数据,并且可以在控制台中看到我所有的json数据。然而我无法使用表显示它,也并没有显示任何错误语句。有人能帮我解决这个问题吗。我引用的代码来自:https://www.youtube.com/watch?v=WMQ2sq1dw6Y&t=230s

嗨,我为您创建了一个示例,但源代码不同,所以我使用json占位符作为源代码,但与您的代码方法相同

fetch("https://jsonplaceholder.typicode.com/posts").then(res => {
return res.json();
}).then(data => {
console.log(data);
if (data.length > 0) {
let tmp = "";

data.forEach(u => {
tmp += `
<tr>
<td>${u.title}</td>
<td>${u.body}</td>
</tr>
`
});

document.getElementById("data").innerHTML = tmp;
}
});
<table class="table table-stripped">
<tbody id="data">
</tbody>
</table>

您可以使用模板文字来轻松地格式化html字符串。我认为您代码中的错误是res.json附近的语法,您忘记正确嵌套括号。

如果仍然不起作用,检查您的数据可能是json键的大小写不正确。