每次加载页面或单击#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();
});
});
答案 0 :(得分:1)
您的问题是您将整数randNum
与字符串localStorage.usedDesc
这样做并亲眼看看:
console.log(typeof localStorage.usedDescs)
console.log(typeof randNum)
使用localStorage.set/getItem()
是'正确'的方法,但你写的内容也是有效的。
答案 1 :(得分:0)
无论输入如何,Localstorage值始终是字符串。因此,randNum和localStorage.usedDescs之间的比较将始终失败。