sessionStorage如果值已存在

时间:2015-12-15 15:43:41

标签: javascript html5 local-storage session-storage

找到了使用sessionStorage显示最近查看过的产品的相当不错的脚本。只有一个问题:每个产品都可以存储和显示多次。

这是jsfiddle http://jsfiddle.net/r77oozh8/

还应该有一个IF来检查当前产品是否已经存储,如下所示:

// check if product already in storage
if(!productExistsInStorage()) {

    var currentCount = parseInt(sessionStorage.getItem("storedCount"));

    // add to storage
    sessionStorage.setItem(currentCount.toString(), JSON.stringify(productInfo()));

    // update storedCount var by one
    sessionStorage.setItem("storedCount", (currentCount + 1).toString());

}

我试图成功,但没有任何成功。

如果产品数据已在sessionStorage中设置,如何保存产品数据?

3 个答案:

答案 0 :(得分:1)

我自己查过后就发现了这篇帖子。

if ("value" in sessionStorage) {
    alert("yes");
}
else {
    alert("no");
}

答案 1 :(得分:0)

不是在每个产品的sessionStorage中设置单独的项目,而是将它们全部设置在一个数组中。这样可以更容易检查它是否已经存在:

var currentItems = JSON.parse(sessionStorage.getItem('products'));
var currentProduct = productInfo();
if (currentItems.filter(function(p){return p.productURL == currentProduct.productURL}).length == 0) {
// add
}

答案 2 :(得分:-1)

为什么不检查该项目的会话存储是否为空?

if(sessionStorage.getItem("storedCount") === null)
{
//do something
}

更好的做一个功能,你可以传递一个项目的名称来检查它。

function doesStorageExist(item)
{

if(sessionStorage.getItem(""+item) === null)
{
//do something
}

}