无法获取动态添加的文本

时间:2014-07-09 14:09:13

标签: javascript jquery html5

我的jQuery代码存在问题。我无法访问动态添加的元素。如果我刷新页面,我可以访问它。

我正在开发一个jQuery / HTML5待办事项列表应用程序。在my code here中,如果添加项目并点击“标记为已完成”(将鼠标悬停在编号按钮上)后,该项目将从UI中删除,但不会从localStorage中删除。代码无法找到任务内容(JS第180行)。

var remove_item_text = $(element).next().text();    // not fetching the text

它变为空白,实际上并没有从localStorage中删除。如果刷新页面,则该项目将再次显示。现在,如果您点击“标记为完成”,则该元素将从localStorage中删除。不是很奇怪吗?

我在这里缺少什么?

jsFiddle

1 个答案:

答案 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方法相同)。

演示:http://jsfiddle.net/csTS7/46/