我目前正在处理一个简单的待办事项列表。我将任务存储在 cookie 中,当网页重新加载时,我会从 cookie 中检索我以前的任务。但是我无法将我的任务保存为已完成,即我标记为完成的任务。
function toHTML(id, text) {
return '<div class="todo" id="' + id + '">' +
'<div id="' + cbid + '"><input type="checkbox" class="check_todo" name="check_todo"/></div>' +
'<div class="todo_description" contentEditable = "true">' +
text +
'</div>' +
'<img src = "sun-icon.gif" class="close" title = "Delete the Task" />' +
'</div>';
}
当我按下复选框时,带有 class = "todo" 的 div 得到 class = "checked" 并且这个 div 内的文本 (todo_description) 变成了交叉,带有 class="todo" 的 div 本身也得到了另一种颜色。
$('#item-' + counter +' .check_todo').unbind('click');
$('#item-' + counter +' .check_todo').click( function() {
var todo = $(this).parent().parent();
todo.toggleClass('checked');
});
当我重新加载页面时,我看到了我以前的任务但没有完成的任务,因为我只从 cookie 中检索文本:
function get_cookies_array(){
var cookies = { };
if (document.cookie && document.cookie != '') {
var split = document.cookie.split(';');
for (var i = 0; i < split.length; i++) {
var name_value = split[i].split("=");
name_value[0] = name_value[0].replace(/^ /, '');
cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
}
}
return cookies;
}
//这里显示我的任务
var cookies = get_cookies_array();
var i = 0;
for(var name in cookies) {
$('.todo_list').prepend(toHTML('item-' + (i++), cookies[name]));
}
我试图检查类“已检查”,
if $(cookies[name]).hasClass('checked')
{ make stylings for this div}
但这不起作用,我需要检查带有 class =“todo”的 div,当我按下复选框时它变成“todo checked”。
如果有人可以帮助我,我会很感激!