我的jQuery代码存在问题。我无法访问动态添加的元素。如果我刷新页面,我可以访问它。
我正在开发一个jQuery / HTML5待办事项列表应用程序。在my code here中,如果添加项目并点击“标记为已完成”(将鼠标悬停在编号按钮上)后,该项目将从UI中删除,但不会从localStorage中删除。代码无法找到任务内容(JS第180行)。
var remove_item_text = $(element).next().text(); // not fetching the text
它变为空白,实际上并没有从localStorage中删除。如果刷新页面,则该项目将再次显示。现在,如果您点击“标记为完成”,则该元素将从localStorage中删除。不是很奇怪吗?
我在这里缺少什么?
答案 0 :(得分:1)
问题是新添加的项目未包含在<p class='item_content'>
标记中。因此.next()
无法获取此元素并且无法获取其文本(接下来会考虑元素节点并跳过文本节点)。
所以要修复它,你应该在addItem
方法中添加一个新项目,如下所示:
$("ul").append("<li class='ui-state-default'><button class='done'>Done</button>"+
"<p class='item_content'>" + $("#new_todo_item").val() + "</p>" +
"<input type='checkbox' class='star' "+checked+" />"+
"<label for='star'>Star</label>");
(与checkLocalStorageExistingData
方法相同)。