0
for (i = 0; i < query.length; i++) {
   sessionStorage.setItem("key", JSON.stringify(query[i].id));
   alert(sessionStorage.getItem("key"));
}

在上面的 for 循环中,我将 id 值放入会话存储中,我面临的问题是,如果循环执行多次,那么在 sessionStorage 中,最后一个值仅存储和加载我的最后一条记录。

但我想在每次迭代中检索 id 值并使用所有值来显示所有记录。

这个怎么做?

4

3 回答 3

0

那是因为您使用的是同一个名为key. 您可以直接对整个对象进行字符串化,而无需编写任何循环:

sessionStorage.setItem('key', JSON.stringify(query));

现在在另一页上:

var query = $.parseJSON(sessionStorage.getItem('key'));

// directly access an element given its index
alert(query[0].id);

// or loop:
for (var i = 0; i < query.length; i++) {
    alert(query[i].id);
}
于 2012-08-10T12:40:49.880 回答
0

或者更简单:为什么不使用已经内置的结构和组件?在发送页面:

TempData["<your key>"] = JSON.stringify(query)

在接收页面上:

var yourVariable = TempData["Key"]
// at this point @yourVariable on receiving page has the same value as stringified query bu JSON

// as Darin mentioned you access elements like this:
alert(@yourVariable[<your index>].id);
于 2012-08-10T13:21:38.627 回答
0
var z=0;
for (i = 0; i < query.length; i++) {
   z=z+1;
   sessionStorage.setItem("key"+(Z), JSON.stringify(query[i].id));
}
sessionStorage.setItem("keyResord", JSON.stringify(z));

for(i=0;i<sessionStorage.getItem("keyResord");i++)
{
    alert(sessionStorage.getItem("key"));
}

可能对你有用,对我有用

于 2012-08-10T13:21:29.850 回答