2013-07-15 66 views
2

我是新來的JQuery,我想知道爲什麼我的腳本不工作。我一直在閱讀API,並且完全按照它的說法進行了操作,但是我仍然沒有得到我期望的結果。請找到下面的腳本:如何刪除元素,一旦它由jquery創建

//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的最後一個孩子,但它並沒有被刪除。

我在這裏做錯了什麼?

非常感謝提前。

+1

你能重現http://jsfiddle.net上的問題嗎? – undefined

+1

當然,我會盡快達到這一點 – jonprasetyo

+0

http://jsfiddle.net/DRA2U/ – jonprasetyo

回答

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(); 
}); 

FIDDLE

+0

是的,這也工作! – jonprasetyo

+0

謝謝 - 我想有不同的方法來做到這一點。我將與jquery探索 – jonprasetyo

1
$('.upload_image').last().remove() 

This sh會工作。

+0

http://jsfiddle.net/2fNwR/3/ –