我将购物车详细信息存储在HTML5本地存储中,如下所示:
Cart_items{"SCI-1":{"quantity":1,"id":"SCI-1","price":23.52,"name":" product 1","pid":"5"}}
我正在测试一个条件,如果本地存储中没有项目,则下拉菜单设置为禁用,如下所示:
<script type='text/javascript'>
if (localStorage.getItem("Cart_items") != null) {
$("#procurselect").attr('disabled','disabled');
$("#procurselect").css('pointer-events','none'); // this makes it unclickable
$("#procurselect").prop( "disabled", true );
}
</script>
问题是,即使我没有在我的购物车中添加任何商品,也会在firebug中的本地存储中显示1个项目,如下所示:
1 item in Storage Cart_items="{}"
因此我的条件总是不是NULL ....我怎么能克服这个?
我的代码是
if (localStorage.getItem("Cart_items") != null)
不正确?????
我的目的是检查本地存储Cart_items中是否有任何值。
我正在使用jQuery。
请求帮助。提前谢谢。
更新
解决了以下问题:
function isObjectEmpty(object)
{
var isEmpty = false;
for(keys in object)
{
isEmpty = true;
break; // exiting since we found that the object is not empty
}
return isEmpty;
}
var myObject = JSON.parse( localStorage.getItem("Cart_items") );//object
var isEmpty = isObjectEmpty(myObject);
// check if the object is not empty
isEmpty = isObjectEmpty(myObject);
if (isEmpty){
//do something
}
感谢您提供的所有帮助......
答案 0 :(得分:0)
问题是你在localstorage中有1个项目,这是你的空对象。
将支票更改为此选项,它应该有效。
var storedCart = JSON.parse(localStorage.getItem("Cart_items"));
if ( storedCart != null && Object.keys(storedCart).length>0)