每次加载页面或单击#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();
    });
});

最佳答案

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

这样做并自己看看:

console.log(typeof localStorage.usedDescs)

console.log(typeof randNum)

使用localStorage.set/getItem()是执行此操作的“正确”方法,但是您编写的内容也同样有效。

关于javascript - jQuery循环与localStorage变量不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35938409/

10-13 05:55