带有localStorage变量的jQuery循环不起作用

时间:2016-03-11 10:56:00

标签: javascript jquery

每次加载页面或单击#desc div时,内容都应更改为其他数组项。会有更多,这就是为什么有Math.random()。

问题是,每次应该生成不同数字的循环都不起作用。

编辑:感谢所有回复,更改===到==帮助;)

var descs = [
    "^that's me",
    "make the web great again"
];

function changeDesc() {
    var randNum = Math.abs(Math.round(Math.random()*descs.length-1));
    if (randNum == localStorage.getItem("usedDescs")) {
        changeDesc();
    }
    else {
        localStorage.setItem("usedDescs", randNum);
        $("#desc").html(descs[localStorage.getItem("usedDescs")]);
    }
}

$(document).ready(function(){
    changeDesc();
    $("#desc").click(function() {
        changeDesc();
    });
});

2 个答案:

答案 0 :(得分:1)

您的问题是您将整数randNum与字符串localStorage.usedDesc

进行比较

这样做并亲眼看看:

console.log(typeof localStorage.usedDescs)

console.log(typeof randNum)

使用localStorage.set/getItem()是'正确'的方法,但你写的内容也是有效的。

答案 1 :(得分:0)

无论输入如何,Localstorage值始终是字符串。因此,randNum和localStorage.usedDescs之间的比较将始终失败。