这是第一页:
scoreSubmit() {
var name = prompt("Unesi svoje ime:");
var objekat = {
"name": name,
"score": score
};
var myJSON = JSON.parse(localStorage.getItem("textvalue"));
myJSON[myJSON.length] = objekat;
var sort = false;
while (!sort) {
sort = true;
for (var i = 0; i < myJSON.length - 1; i++) {
if (myJSON[i + 1].score > myJSON[i].score) {
var temp = myJSON[i];
myJSON[i] = myJSON[i + 1];
myJSON[i + 1] = temp;
sort = false;
}
}
}
localStorage.setItem("textvalue", JSON.stringify(objekat));
}
这是我第二页上的代码
var myJSON=JSON.parse(localStorage.getItem("textvalue"));
var bodycontent="";
for(var i =0;i<myJSON.length;i++){
bodycontent +="<tr>";
bodyContent += "<td>" + (i + 1) + ".</td><td class='name'>" + myJSON[i].name + "</td><td>" + myJSON[i].score + "</td>";
bodyContent += "</tr>";
}
document.getElementById("leaderboardBody").innerHTML =bodycontent;
但是由于某种原因,如果JSON数据未显示在表上。您知道我在哪里吗?任何帮助都需要我很多!
答案 0 :(得分:0)
localStorage.setItem("textvalue", JSON.stringify(objekat));
看起来不对。当然,您打算写
localStorage.setItem("textvalue", JSON.stringify(myJSON));
?
否则,它将只将一个对象值写入localstorage,而检索现有列表,添加到列表中并进行排序的整个目的毫无意义。另外,如果尝试使用第二页代码处理单个对象,则该对象将没有长度(因为它不是数组),因此循环将无法运行以创建HTML。