如何在Jquery中选择html元素的特定实例?
How do I select a specific instance of an html element in Jquery?
我有一个待办事项列表应用程序,允许用户创建待办事项。现在我正在使用jquery构建功能,允许用户删除任务。
问题是当我点击一个todo应用程序上的删除按钮时,请我确认删除每个列表项。当我点击"取消删除"时,它会取消所有的。换句话说,在所有HTML元素上都接收到重复的行为。
我相信这是因为所有的待办事项都是从相同的html生成的。erb模板,在模板中我给每个元素它的ID,所以我可以引用它,但是,因为每个ID是相同的,我不能区分不同的todo包含相同ID的元素。如何在Jquery中选择一个特定的html元素实例?
完整JS代码/HTML输出:http://jsfiddle.net/LvKED/Rails html。erb代码:
<%= form_for task do |form| %>
<li>
<% if !task.completed %>
<p> <%= task.title%></p>
<p>– <%=task.body %></p>
<%= form.check_box :completed, class: "completed_checkbox" %>
<%= button_to "Delete post",{}, class:"delete_button" %>
<%= link_to "Confirm deletion",{}, class: "confirm_links", id: "confirm_delete" %>
<%= link_to "Cancel",{}, class: "confirm_links cancel_delete" %>
</li>
<% end %>
<% end %>
Ishita的回答似乎是正确的,但我还没有资格评论他的回答。我觉得你得把"事件"包起来。在$()中定位",所以它将是:
var targetElement = $(event.target).closest('li');
希望对你有帮助。
在事件处理程序中,您可以通过以下代码行获取对特定项的引用:
var targetElement = $(event.target).closest('li');
下面是操作按钮和链接的方法:
$("#task").on("click",".delete_button",function(){
$(this).hide();
$(this.form).next('.confirm_links').show()
.next('.confirm_links').show();
return false;
});
$("#task").on("click",".cancel_delete",function(){
$(this).hide()
.prev(".confirm_links").hide()
.prev('form').find(".delete_button").show();
return false;
});
按钮/链接演示:http://jsfiddle.net/fiddleyetu/LvKED/5/
这个演示只展示了一种方法,可以从许多共享相同选择器的元素中选择一个。您可以使用的其他有用的jQuery特性有:
jQuery.closest()
jQuery.nextUntil()
jQuery.prevUntil()
找到一个最适合你的。
相关文章:
- 如何使用javascript独立地为聚合物自定义元素的每个实例的lightdom设置样式
- 如何确定 HTML 元素是使用哪个实例创建的
- 元素意外地隐藏在Safari的某些实例中,总是出现在Firefox、Chrome中
- 仅在需要时实例化聚合物元素
- 插件总是只得到最后一个实例,如何让它适用于多个元素
- 角度模态实例可以't读取DOM元素
- 如何通过元素选择器获取tinyMCE编辑器实例
- 删除聚合物元素,文件上传在实例上传时逐渐添加更多文件
- 使用 JQuery 在 5 秒后隐藏元素的实例
- 检查变量是否为 SVG.js 元素实例
- 在实例化 JQuery 小部件时选择当前元素
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 使用 DOM 元素的 id 访问插件实例
- Javascript — 相同元素的两个实例
- 多个语义 UI 弹出窗口,其中目标元素在每个实例的 atribute 中定义
- 根据 jQuery 中多个实例上的另一个元素高度设置高度
- 在JS对象实例中引用Ajax加载的元素
- 替换多个元素中字符的所有实例
- 用于存储/检索Backbone.js的模式查看与dom元素关联的实例
- 如何使用选择器获取相对于element实例的元素