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

Javascript帮助设置/获取每个输入元素的本地存储数据,javascript,html,local-storage,Javascript,Html,Local Storage,我一直在做这件事,而且几乎成功了。我有一种感觉,循环中的setInterval是无法完成的,或者是不起作用的。如果没有setInterval和最后的“if”语句,它将完美地遍历元素,并在我将其设置为时为每个元素添加一个类名。这是我的剧本,如果有人能告诉我哪里出了问题: (function() { var localStorageID = document.getElementById('local-storage'); var inputTags = ['input', 'tex

我一直在做这件事,而且几乎成功了。我有一种感觉,循环中的setInterval是无法完成的,或者是不起作用的。如果没有setInterval和最后的“if”语句,它将完美地遍历元素,并在我将其设置为时为每个元素添加一个类名。这是我的剧本,如果有人能告诉我哪里出了问题:

(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.stringify将对象转换为字符串,然后在从localStorage检索时解析该字符串

编辑:例如:

localStorage.setItem('formData', JSON.stringify(formData));
var fd= JSON.parse(localStorage.getItem('formData'));

if(fd) {
    // Try to achieve something
} 

看起来你并不是在使用本地存储。currentLocalTag是否引用输入元素?如果是这样,则无法在其上运行setItem。您必须使用localStorage.setItem,其中localStorage位于全局对象上。啊,是的,代表我犯了一个愚蠢的错误。这是否意味着问题得到了回答?如果是,请关闭。@SteveH。我已经用我的更新更新了上面的代码。我已将表单数据转换为对象。不知道你是否有任何想法,最终确定它!见: