我的问题如下:
我已经从我已经拥有的表创建了一个数组,并将我想要的列存储到一个数组中,然后使用
JSON.stringify将其存储在localStorage中:
function createArray(){
var arrayPlayerName = [];
var count = 1;
while(count<=playerNum){
arrayPlayerName.push(document.getElementById('playertable').rows[count].cells[1].innerHTML);
count++;
}
localStorage.setItem("playerNameArray", JSON.stringify("arrayPlayerName"));
}
(playerNum是一个在其他方法中使用固定数字的变量,“getElementById”有效).
之后,我想在另一个HTML doc中的另一个表中显示这些数据.
那么,以下是我的HTML代码:
<table class="myTable">
<thead>
<tr class="row">
<th colspan="3">Array List</th>
</tr>
</thead>
</table>
这是脚本:
var storedPlayerArray = JSON.parse(localStorage.getItem("playerNameArray"));
tablegenerate (storedPlayerArray);
function tablegenerate (list) {
for(i=0; i<playerNum;i++){
var $formrow = '<tr><td>'+list[i]+'</td></tr>';
$('.myTable').append($formrow);
}
}
我不确定我做错了什么..提前谢谢.
编辑:我用一个按钮调用createArray函数,我用另一个按钮导航到第二页.第二页应直接加载.
EDIT2:我已经修改过数据存储并在第二页上正确调用,所以问题现在出现在“tablegenerate”函数上.
最佳答案 编辑
我想我发现问题试试这个:
var storedPlayerArray = JSON.parse(localStorage.getItem("playerNameArray"));
function tablegenerate (list) {
for(var i=0; i<list.length;i++){
var $formrow = $('<tr><td>'+list[i]+'</td></tr>');
$('.myTable').append($formrow);
}
}
$(document).ready(function(){
tablegenerate (storedPlayerArray);
})
您的createArray函数中存在问题.您在字符串上运行JSON.stringify而不是要存储的数组.
改变这个:
localStorage.setItem("playerNameArray", JSON.stringify("arrayPlayerName"));
对此:
localStorage.setItem("playerNameArray", JSON.stringify(arrayPlayerName));