存储动态创建的复选框值

时间:2015-03-12 23:12:10

标签: javascript jquery google-chrome-extension

所以我在我的某个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);
});

有什么想法吗?也许我真的过分思考它,但我似乎无法弄明白。

感谢。

1 个答案:

答案 0 :(得分:-1)

我的猜测是,因为复选框是动态生成的,所以行

var isTodoListChecked = document.getElementById(i).checked;

不起作用。您需要将jquery .on()函数调用为复选框值。

$(document).on('checked', '#'+i, function(e){