JavaScript 循环在 "localStorage.removeItem"处停止

标签 javascript local-storage

为什么“localStorage.removeItem”会停止循环?如果我删除“localStorage.removeItem”并只保留“警报”,它会循环遍历整个过程,但对于“localStorage.removeItem”,它会在第一个匹配项停止。

function removeTask() {
    for (i=0; i < localStorage.length; i++){
        checkbox = document.getElementById('utford'+i);
        if (checkbox.checked == true) {
            alert(i);
            localStorage.removeItem(localStorage.key(i));
        }
    }
    printList();
}

最佳答案

如果您删除一个项目,键会向下移动一个索引。您需要向后循环。

function removeTask() {
    for (var i=localStorage.length-1; i>=0; i--){
        var checkbox = document.getElementById('utford'+i);
        if (checkbox.checked == true) {            
            localStorage.removeItem(localStorage.key(i));
        }
    }
    printList();
}

关于JavaScript 循环在 "localStorage.removeItem"处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162896/

相关文章:

html - 为什么我的 HTML 5 本地存储无法工作?

javascript - jQuery:隐藏没有ID的div

JavaScript 循环输出的顺序不正确 - 如何解决这个问题?

javascript - jquery 和 javascript 可以共存于一个文件中吗?

javascript - 如何从 Javascript 访问我的 groovy/grails 值

javascript - 如何使点击的元素突出显示?

javascript - AJAX成功后删除localStorage的对象

具有特定步骤的Javascript for循环

javascript - 页面调整大小时背景封面

javascript - JQuery Mobile 会干扰 Javascript 还是格式问题?