我有一个声明为真的变量
var g1 = sessionStorage.getItem("g1"); //true
var g2 = sessionStorage.getItem("g2"); //false
var g3 = sessionStorage.getItem("g3"); //false
但在我的功能中
function checkmonitogift() {
console.log(g1);
if (g1 == true) {
$("#g1").css({
"background-color": "rgba(176,5,8,.9)",
"cursor": "not-allowed"
});
$("#g1").html("OK");
}
if (g2 == false) {
$("#g2").css({
"background-color": "rgba(176,5,8,.9)",
"cursor": "not-allowed"
});
$("#g2").html("OK");
}
if (g3 == false) {
$("#g3").css({
"background-color": "rgba(176,5,8,.9)",
"cursor": "not-allowed"
});
$("#g3").html("OK");
}
}
console return" true"但它仍然不符合if
陈述的条件
答案 0 :(得分:1)
sessionStorage.getItem("g2")
返回"true"
(字符串)而不是true
(布尔值)
成功
var g1 = sessionStorage.getItem("g1") == "true" ; //true
var g2 = sessionStorage.getItem("g2") == "true"; //false
var g3 = sessionStorage.getItem("g3") == "true"; //false
答案 1 :(得分:1)
您可以做很多事情来比较string
和boolean
我更喜欢的两个是:
var trueStr = "true";
var g1 = (trueStr === sessionStorage.getItem("g1") );
var g2 = (trueStr === sessionStorage.getItem("g2") );
var g3 = (trueStr === sessionStorage.getItem("g3") );
或
var g1 = JSON.parse(sessionStorage.getItem("g1"));
var g2 = JSON.parse(sessionStorage.getItem("g2"));
var g3 = JSON.parse(sessionStorage.getItem("g3"));
然后你的变量将是boolean
,其余的工作正常。
答案 2 :(得分:1)
var g1 = sessionStorage.getItem(“g1”);
此处输出类型为字符串,因此您无法像这样检查
if (g1 == true) {
将您的代码改为
if (g1 == "true") {
或者如果你觉得你得到了布尔值,那么就这样做
if (g1) {
or
if (!g1) {