2

我是 JQuery 的新手,我想知道为什么我的脚本不起作用。我一直在阅读 API,并且完全按照它所说的做了,但我仍然没有得到我所期望的。请在下面找到脚本:

//To infinitely add images
$('.add_upload_image').on('click', function(){
    $('.upload_image').append('<input type="file" name="userfile[]"/><br/>');
});

//To remove the last child of the .upload_image
$('.remove_upload_image').on('click', function(){
    $('.upload_image input:last-child').remove();   
});

所以我相信你明白我想要达到的目标。但基本上,我有一个文本,上面写着“单击以添加更多上传”,.add_upload_image然后当用户单击它时,它会将输入元素添加到 div 类.upload_image。工作正常。但是,当用户单击包含在其中的“单击以删除”时.remove_upload_image,我的目标.upload_image是输入的最后一个子元素并且它没有被删除。

我在这里做错了什么?

提前谢谢了。

4

2 回答 2

3

你必须使用:last,而不是:last-child<br>元素是最后一个孩子):

$('.remove_upload_image').on('click', function(){
    $('.upload_image input:last').remove();   
});

您可能还应该删除该<br>元素:

$('.remove_upload_image').on('click', function(){
    var el = $('.upload_image input:last');
    el.add(el.next('br')).remove();   
});

小提琴

于 2013-07-15T21:30:19.857 回答
1
 $('.upload_image').last().remove()

这应该有效。

于 2013-07-15T21:32:02.940 回答