Javascript帮助设置/获取每个输入元素的本地存储数据

Javascript help setting/getting local storage data for each input element

本文关键字:元素 数据 存储 输入 设置 帮助 获取 Javascript      更新时间:2023-09-26

我一直在做这件事,而且它几乎已经成功了。我有一种感觉,循环中的setInterval是无法完成的,或者不起作用。如果没有setInterval和最后的"if"语句,它会完美地遍历元素,并在我设置为的情况下为每个元素添加一个className。如果有人能告诉我哪里出了问题,下面是我的脚本:

(function() {
    var localStorageID = document.getElementById('local-storage');
    var inputTags = ['input', 'textarea', 'select', 'button'];
    // Loop through all the input tags on the page
    for(var i = 0; i < inputTags.length; i++) {
        // Create a variable that matches input tags inside our #localStorage
        var localStorageTag = localStorageID.getElementsByTagName(inputTags[i]);
        var formData = {};
        for(var z = 0; z < localStorageTag.length; z++) {
            formData[localStorageTag[z].name] = localStorageTag[z].value;
        }
        localStorage.setItem('formData', formData);
        if(localStorage.getItem('formData')) {
            // Try to achieve something
        }   
    }
})();

您不能在localStorage中存储对象。它们一定是字符串。使用JSON.stringfy()将对象转换为字符串,然后在从localStorage检索时使用JSON.parse()将字符串转换为字符串。

编辑:例如:

localStorage.setItem('formData', JSON.stringify(formData));
var fd= JSON.parse(localStorage.getItem('formData'));
if(fd) {
    // Try to achieve something
}