使用jquery删除添加的元素

时间:2013-05-06 02:11:28

标签: jquery clone add

我想要完成的两件事。 1)使用克隆方法我希望用户能够添加多个文本框项目,并在文本框旁边添加删除链接,而不是像现在一样工作。 2)。单击“删除”链接时,我想删除父列表项并删除链接。我环顾四周寻找答案,但没有想出答案。此外,如果一种比克隆更好的方法可行,我愿意接受建议和解释。

My jsfiddle code

$('#click').click(function(){
var clone = $('li:last').clone()
if(!clone.find('.del')[0]) clone.append('<a href="#" class="del">Delete</a>')

clone.appendTo('ul');
    });

$('ul').on('click', 'li .del', function(){
     $(this).closest('li').remove();
        });

2 个答案:

答案 0 :(得分:0)

查看更新后的小提琴http://jsfiddle.net/juanpastas/56wuv/17/

基本上你需要处理尚未创建的元素中的事件:

$('ul').on('click', 'li .del', function(){

并且为了使用这个选择器

$(this).closest('li')

您需要在$(this)元素

中放置.del,即li个元素
var clone = $('li:last').clone().append('<a href="#" class="del">Delete</a>')
clone.appendTo('ul');

更新

if(!clone.find('.del')[0]) clone.append('<a href="#" class="del">Delete</a>')

clone.find('.del') // returns elements with del class inside the cloned element
[0]                // gets the first element in these elements, undefined if no del elements found
!                  // negates undefined, i.e. true,

// so code enter if when there is no del element

clone.append('<a...'  // append delete if there is no delete link

答案 1 :(得分:0)

2件事:

1)您仅在加载时绑定偶数,因此当您创建链接时,它没有任何操作,请使用jQuery on()

$(document).on('click', '.del',function(){...}

2)最近父母的搜索,您想要上一个li,所以请使用jQuery prev()

这里有一个小提琴:http://jsfiddle.net/56wuv/15/