所以我在我的某个Chrome扩展程序上有一个类似todo列表的功能,我只是没有设法获取存储值的复选框。
我采取了一种非传统的方法,我有一个textbox
,当我按下回车键时,textbox
值会在我的div中创建我的第一个todolist元素,然后我发送将textbox
值设置为textarea
,其中我存储了由\n
分隔的所有todolist元素。然后当我重新加载页面时,我存储的textarea用新行分隔值并将它们输出到div中。可能不是做这样的事情的最佳方式,但到目前为止它对我有用。
无论如何,现在我试图存储动态创建的复选框的复选框值。因此,我为每个复选框分配了i
i
为< textareaLines
的ID。我似乎无法弄清楚如何动态存储复选框,我知道如何单独存储它们但这对我来说似乎更难。
以下是setting
同步存储的代码:
var todolines = $('#todoListSave').val().split('\n');
for(var i = 0;i < todolines.length;i++){
console.log(i);
var isTodoListChecked = document.getElementById(i).checked;
chrome.storage.sync.set({
todoList: isTodoListChecked
});
console.log(isTodoListChecked);
}
这是我的同步存储getting
的代码:
chrome.storage.sync.get('todoList', function (result) {
todoList = result.todoList;
console.log(todoList);
});
有什么想法吗?也许我真的过分思考它,但我似乎无法弄明白。
感谢。
答案 0 :(得分:-1)
我的猜测是,因为复选框是动态生成的,所以行
var isTodoListChecked = document.getElementById(i).checked;
不起作用。您需要将jquery .on()函数调用为复选框值。
$(document).on('checked', '#'+i, function(e){