1

我正在尝试设计一个网站(可能会制作成 Chrome 扩展程序),它允许我标记哪些角色在我玩的在线游戏中完成了哪些事件。如果我可以选择在访问之间保存复选框的值(理想情况下,还有字符名称),我会喜欢它,但我不擅长编码。另外,如果可以根据命令保存/清除/重新加载此信息,我会非常喜欢它,而不是其他方式。

有问题的页面,如果我的代码效率不高或不吸引人,请原谅我。实际上,我更喜欢将它更多地捆绑在一起,但为了您的利益,我整理了它。

这里有一个我正在尝试使用的建议:

var i, checkboxes = document.querySelectorAll('input[type=checkbox]');

function save() {
    for (i = 0; i < checkboxes.length; i++) {
        localStorage.setItem(checkboxes[i].value, checkboxes[i].checked); 
    }
}

function load_() {
    for (i = 0; i < checkboxes.length; i++) {
        checkboxes[i].checked = localStorage.getItem(checkboxes[i].value) === 'true' ? true:false;
    }
} 

但是虽然它在测试中运行良好,但当我将它放入我的文档时它就不起作用了(你会看到顶部的 var i 仍然是我放在重置函数上方的其余代码)。

帮助?

4

1 回答 1

0

这一行:

var i, checkboxes = document.querySelectorAll('input[type=checkbox]');

head您的文档中并立即运行。运行时不存在任何复选框。

我建议将该脚本放在body元素的末尾或将其放在window.onload = function() {}.

如果您在发布的工作 jsFiddle 链接中检查 DOM 结构,您会看到它将脚本放置在body元素的末尾。

于 2013-06-19T08:31:12.413 回答