2012-05-30 56 views
1

這是我試圖運行的一個簡單腳本。如何在jQuery中刪除所有行時克隆一行?

http://jsfiddle.net/T8q5p/5/

我想要做的就是添加一個新的輸入框,每添加按鈕。我附加到每個表單,一個刪除按鈕。當我點擊刪除時,行就會消失。

但是,當我刪除所有這些,我不能再添加任何輸入字段。我認爲這是因爲沒有東西可以克隆,因爲所有的列表項都被刪除了。

如果有一個if語句,說如果這是剩餘的文本,只是空喜歡

 $(this).parent('li').val(""); 

的價值?

我不知道如何把在..

謝謝

回答

2

你可以在一個變量保存一個參考項,然後從該克隆。 此外,ID必須是唯一的,因此請將刪除ID更改爲類。

http://jsfiddle.net/T8q5p/6/

var item = $("#tasks ul li:eq(0)").clone(true, true); // need to clone for new add 
$('#add').click(function() { 
    var taskItem = item.clone(true,true); 
    $('#tasks ul').append(taskItem); 
    taskItem.find(':input:text').val(""); 
    return false; 
}); 
$('body').on('click','.delete',function() { 
    $(this).parent('li').remove(); 
    return false; 
});​ 

另外,您可以防止最後一個項目的完全缺失:

if(!$(this).parent('li').is(':only-child')){ 
    $(this).parent('li').remove(); 
}