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