如何删除我使用按钮创建的内容

时间:2016-05-08 12:57:46

标签: javascript jquery html

关于另一个问题的后续问题,我在这里是JQuery的新手......我有一个创建简单JQuery的任务,用于选择日期,键入事件并将它们添加到带有小红色的列表中每个项目前面的按钮。

我的代码如下:

{{1}}

我遇到的问题非常简单,我创建的红色按钮应该擦除我创建的整行和仅特定行,问题是红色按钮会删除列表中的每个内容。

我知道它是因为它们都有段落标签,但我该怎么做才能让按钮只删除一行?

这是我今天要问的第二个问题,我通常不会这样做但是这应该在2-3天内到期但是接下来的几天在空闲时间是不可预测的,所以这是为什么我今天要提出第二个问题......

提前致谢。

2 个答案:

答案 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 });