0

我一直在研究这个,而且它几乎可以工作了。我有一种感觉,循环内的 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
        }   
    }
})();
4

1 回答 1

0

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

编辑:例如:

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

if(fd) {
    // Try to achieve something
} 
于 2013-02-06T22:09:06.300 回答