2015-12-22 42 views
5

我已經創建了一個可以被查看的克隆元素函數view demo here。當按下重置按鈕時,它將刪除所有克隆的項目元素,但是當嘗試添加項目列表中的其他項目時,「新增」項目對於DOM不可見。本如何防止jQuery .remove()從刪除父類

var eleClone = $('list-items').clone(true); 

$('#add-btn').on('click',function(){ 
    $('.list-items:first').clone().appendTo("#items").addClass('isVisible'); 
    $('#items-fields').val(''); 
}) 

// RESET BUTTON 
$('.reset').on('click', function(){ 
    if($('.list-items').length != 1); 
    $('.list-items:last').remove(); 
    event.preventDefault(); 
}) 
+0

您需要指定要刪除的項目。當你使用類名來做這件事時,所有具有這個類的元素都會受到影響。如果您想確保獲得幫助,請發送所有相關代碼,以便可以模擬此行爲。 – Franco

+0

@Franco除非我寫得很差,否則這個問題很自我解釋。我想刪除的元素是'.list-items',它們在演示中演示並寫入代碼中。 (他們正在被當前的功能取消)。如果您查看演示,您會注意到當用戶按下重置按鈕時,所有項目都被刪除,當您嘗試添加新項目時,它們在DOM上不可見,再次寫入問題中並在演示中演示 – NewKidOnTheBlock

+0

我看到而且我也看到你在這之前已經發布了另一個問題。正如你所看到的,你沒有得到第一個迴應,你當然可以做你想做的事情。我只是給你一個建議,提高你的問題的好機會。 – Franco

回答

1

如果你有你的復位按鈕更改代碼在你的if語句下面

$('.reset').on('click', function(){ 
    if($('.list-items').length > 1) { 
     $('.list-items:last').remove(); 
    } 
}) 

在您設置列表項下列方式的那一刻..

When a user clicks the delete button, if the number of things with the class list-item does not equal 0, then remove the last list-item 

你需要更改它的代碼,以便它執行以下操作:

When a user clicks the delete button, if the number of things with the class list-item is greater than 1, then remove the last list-item 
1

此時應更換此

var eleClone = $('.list-items').clone(true); 

您搜索,而要尋找這「身份證」是「列表項」元素類是'list-items'的元素。

+0

我試過這個,但是並沒有刪除克隆的元素 – NewKidOnTheBlock

+0

當然,這個命令會用eleClone內容替換每個列表項。 –