我目前正在处理一个简单的待办事项列表。我将任务存储在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}
但这不起作用,我需要检查div与class =“todo”,当我按下复选框时,它变为“todo checked”。
如果有人可以帮助我,我会很高兴!
答案 0 :(得分:0)
如果您想检查复选框是否已选中,您可以尝试:
$('#id_checkbox').is(':checked');
如果您想在不重新加载页面的情况下获取cookie,可以在set和get之间设置setTime