关于另一个问题的后续问题,我在这里是JQuery的新手......我有一个创建简单JQuery的任务,用于选择日期,键入事件并将它们添加到带有小红色的列表中每个项目前面的按钮。
我的代码如下:
{{1}}
我遇到的问题非常简单,我创建的红色按钮应该擦除我创建的整行和仅特定行,问题是红色按钮会删除列表中的每个内容。
我知道它是因为它们都有段落标签,但我该怎么做才能让按钮只删除一行?
这是我今天要问的第二个问题,我通常不会这样做但是这应该在2-3天内到期但是接下来的几天在空闲时间是不可预测的,所以这是为什么我今天要提出第二个问题......
提前致谢。
答案 0 :(得分:1)
您可以删除最近的" p"而不是删除所有" p"。
更改此行:
$( "p" ).remove();
有了这个:
$(this).closest("p").remove();
这里有一个完整的例子: http://jsbin.com/gikululofu/edit?html,output
答案 1 :(得分:1)
在我给出解决方案之前,让我指出脚本中的一个小错误。
点击按钮apagar
即可向动态按钮bta
添加相同的ID。现有代码将起作用,因为您正在使用事件委派来进行动态按钮单击事件。但即使它有效,这也不是正确的方法( DOM中的元素从不具有相同的Id' s )。我建议使用动态按钮的类(您已经在做),并在事件委托选择器中使用此类来执行click事件。因此,删除id后,动态按钮的代码应如下所示。
<input type="button" class="apagar" value="apagar"/>'
现在的解决方案是在点击的元素上使用Jquery的 nearest()功能。由于点击此按钮时按钮被包裹在p
标记内,因此我们会使用p
找到closest
标记,这将会冒泡,直到它找到元素,然后删除p
标记。
因此,请更改您的脚本,该脚本应将p
标记移至下方。
$(document).on('click', '.apagar', function () { // changed id selector to class
$(this).closest( "p" ).remove(); // access particular p tag and remove
});