如何运行基于本地存储布尔值类型的 if/else 语句? [重复]

问题描述 投票:0回答:2

我希望此代码找到本地存储值,如果为 true,则显示网格,但如果为 false,则隐藏网格。我尝试了这段代码,但无法让它正常工作。关于我做错了什么有什么想法吗?

var v = localStorage.getItem('checkcalfid'); 
if (v===true)
{
jQuery('[name="mobilegridcell_385"]').closest("tr").show();
}
else jQuery('[name="mobilegridcell_385"]').closest("tr").hide();
javascript cordova if-statement local-storage
2个回答
2
投票

localStorage 的 getItem 函数返回字符串,如果您希望代码正常工作,请考虑将其更改为。

这是一个 jsfiddle 示例:https://jsfiddle.net/dkabf953/1/

var v = localStorage.getItem('checkcalfid'); 
if (v== 'true') { // Check if it's equal to the string true
    jQuery('[name="mobilegridcell_385"]').closest("tr").show();
} else {
    jQuery('[name="mobilegridcell_385"]').closest("tr").hide();
}

1
投票

尝试

JSON.parse
可能是存储的值不是布尔值,并确保在设置项目时使用
JSON.stringify

    // storing value using JSON.stringify
    localStorage.setItem("key",JSON.stringify(value));
    
    -------------------------------------------------------------

    // retrieving value using JSON.parse
    var v = JSON.parse(localStorage.getItem('checkcalfid')); 
    if (v===true)
    {
    jQuery('[name="mobilegridcell_385"]').closest("tr").show();
    }
    else jQuery('[name="mobilegridcell_385"]').closest("tr").hide();
© www.soinside.com 2019 - 2024. All rights reserved.