javascript - 将本地存储数据填充到 HTML 表中?
问题描述
在创建游戏并实施分数等之后,我已将当前登录玩家的用户名连同他的分数一起保存到本地存储中。
/*Saves current logged in player to local storage*/
let player = sessionStorage.getItem("loggedInUsername");
function savePlayer(){
/*sets logged in player + score + time*/
let Player = [player, score];
localStorage.setItem("Player",Player.toString());
}
一旦游戏结束,我就会调用该函数。我还在 HTML 中创建了一个高分表,如下所示:
<body class = "score">
<article>
<!-- Table for TopScores -->
<table align = "center">
<tr>
<td id= "title" colspan = "3"><h1>Top Scores</h1></td>
</tr>
<tr>
<th>Username</th>
<th>Score</th>
<th>Time</th>
</tr>
<tr>
<td></td>
<td></td>
<td>0</td>
</tr>
<tr>
<td></td>
<td></td>
<td>0</td>
</tr>
<tr>
<td></td>
<td></td>
<td>0</td>
</tr>
</table>
</article>
</body>
我很难使用 localStorage.getItem 将玩家的用户名和他的分数调用到高分表。
任何帮助将非常感激。
解决方案
您可以从 javascript 创建表格行数据,在下面找到 jsfiddle 链接的代码片段 ( https://jsfiddle.net/59u4ba0d/ ):
HTML:
<table>
<tbody id="tbody"></tbody>
</table>
Javascript:
var testObject = [{ 'name': 'James', 'score': 90, 'time': '16:00' }, {
'name': 'Robert', 'score': 80, 'time': '15:00' }];
localStorage.setItem('testObject', JSON.stringify(testObject));
var retrievedObject = JSON.parse(localStorage.getItem('testObject'));
var tbody = document.getElementById('tbody');
for (var i = 0; i < retrievedObject.length; i++) {
var tr = "<tr>";
tr += "<td>Name</td>" + "<td>" + retrievedObject[i].name + "</td></tr>";
tr += "<td>Score</td>" + "<td>" + retrievedObject[i].score + "</td></tr>";
tr += "<td>Time</td>" + "<td>" + retrievedObject[i].time + "</td></tr>";
tbody.innerHTML += tr;
}
推荐阅读
- python - 将密集向量与 Tensorflow 中稀疏矩阵的每一行相乘
- flutter - flutter/dart 通过 mqtts 连接到 Azure
- javascript - JS - 数组数组
- macos - Multipass VM(macOS 主机)-> 挂载失败:源“
" 不可读 - c - 在函数中 - 错误:来自不兼容指针类型的赋值 [-Werror=incompatible-pointer-types]
- reactjs - 如何在不首先返回初始值 null 的情况下仅从 useEffect 获取更新的值?
- google-cloud-platform - BigQuery - JSONpath 递归运算符 (2/2)
- amazon-s3 - 为什么冷线存储比云计算中的近线存储成本更高?
- sql - 透视/取消透视 SQL 结果集列名到单独的列
- javascript - 如何将小部件脚本添加到 Blazor 页面