jQuery删除动态元素

时间:2018-03-14 13:31:45

标签: jquery

我已经看过this post但我不确定如何构建jquery代码,当我有2个元素且1有onclick事件时如下:

$('.button1').click(function(event) {
  var el_parent = $(this).parent();
  $('<input id="new_input" type="text" />').appendTo(el_parent);
  $('<a href="#" id="button2">Do Something</a>').on('click', function(event2) {
    // some code
  }).appendTo(el_parent);
});

如果只有输入字段,那么我假设以下内容可行:

var el_input = '';

$('.button1').click(function(event) {
  var el_parent = $(this).parent();
  el_input = $('<input id="new_input" type="text" />');
  el_input.appendTo(el_parent);
});

然后使用以下内容删除:

el_input.remove();

但是如何构造jquery以包含button2?

UPDATE:

正如Robin建议我可以单独删除元素,但在下面的代码中我发现它什么都没有显示,因为它似乎在追加后完成删除。该页面包含几个按钮,类按钮1&#39;每个都可能添加&#39; new_input&#39;和&#39; button2&#39;,所以我想在添加具有相同ID的新实例之前删除任何这些实例,这是可能还是与DOM冲突?

$('.button1').click(function(event) {
    $('#new_input').remove();
    $('#button2').remove();      
  var el_parent = $(this).parent();
  $('<input id="new_input" type="text" />').appendTo(el_parent);
  $('<a href="#" id="button2">Do Something</a>').on('click', function(event2) {
    // some code
  }).appendTo(el_parent);
}); 

更新2: - 改变计划

决定不删除元素,而是用类替换动态输入id,并使用输入名称获取输入值。

1 个答案:

答案 0 :(得分:1)

如果通过' include button2'表示您也想删除它,则可以通过其ID选择它:

$('#button2').remove();