我有一个函数有一个for语句重复,直到变量(i)等于localStorage.length
并且在for循环中有一个if语句检查localStorage条目是否以#开头然后运行一个功能。当我调用此函数时,for循环中没有任何内容运行。
function refresh() {
var i = 0;
console.info("The LocalStorage Length is: " + localStorage.length);
console.info("i is: " + i);
console.log("i == localStorage.length is:" + i == localStorage.length);
for (i = 0; i == localStorage.length; i++) {
console.info("i is: " + i);
current = localStorage.key(i);
if (current.substr(0, 1) == "#") {
noteArea.innerHTML = +createHtml(current.substr(1), localStorage.getItem(current)); //Adds the html to the page
console.log(current.substr(1) + " - Note displayed."); //Logs the note title
} else {
console.log("No notes saved.");
}
console.info("i == localStorage.length is:" + i == localStorage.length);
}
}
function createHtml(name, desc) {
var html = "<div class = 'note'> <h4 class = 'note-title'>" + name + "</h5> <p class = 'note-desc'>" + desc + "</p> </div> <br/>";
console.log(html);
return html;
}
答案 0 :(得分:1)
尝试更改您的for语句,使其显示为i < localStorage.length
。
循环永远不会执行的原因是因为循环中的语句必须是TRUE
才能执行。循环执行时此语句仍为TRUE
。
您还可以删除循环中i
的重新初始化,因为您已经有变量i
。