2012-02-09 75 views
0

我已創建添加文本字段appendTo()jQuery刪除div除了一個

.remove()功能也正常工作。

這裏是我的代碼:

<div id="add_words"> 
    <a id="add">Add</a> 
    <a href="#" class="reset">Reset</a> 

    <div class="line">Word <input class="input1" type="text" /></div> 
</div> 
$(document).ready(function() { 
    var scntDiv = $('#add_words'); 
    var wordscount = 1; 
    var i = $('.line').size() + 1; 
    // Add new input field while keyup 
    $("#add_words").on("keyup", "input[type='text']", function(e) { 
     if ($(this).attr("data-isused") != "true") { 
      $(this).attr("data-isused", "true"); 
      wordscount++; 
      $('<div id="em_in" class="line" style="display:none">Word ' + wordscount + '<input type="text" class="input' + wordscount + '" value="' + wordscount + '" /><a class="remScnt">Remove</a></div>').appendTo(scntDiv).slideDown(1000); 
      i++ 
      return false; 
     } 
    }); 
    // Remove button 
    $('#add_words').on('click', '.remScnt', function() { 
     if (i > 1) { 
      $(this).parent().remove(); 
      i--; 
     } 
     return false; 
    }); 
}); 

這些工作的罰款。

我想補充的復位功能<a href="#" class="reset">Reset</a>鏈接 我與父母和一些其他方式嘗試這樣的:

$('a.reset').click(function() { 
    while (i > 2) { 
     $('.line').remove(); 
     i--; 
    } 
}); 

不幸的是我沒有找到解決辦法呢。

+1

首先,你i之後缺少分號++(第11行)。 – 2012-02-09 17:21:49

+0

@蒂莫西亞倫你是輝煌的 謝謝:) – Muhammed 2012-02-09 17:25:16

+0

如果它是輝煌的,那麼標記爲有幫助。對於你認爲有幫助的答案也要這樣做。 – Kato 2012-02-09 17:38:39

回答

1

如何:

$('a.reset').click(function() { 
    $('.line').slice(1).remove(); // select all lines but first one for removal... then remove them 
}); 
2

呀,不知道你要什麼,但如果你想選擇所有的一組元素,除了可以使用這些元素的一個子集的。不能()函數,使用任何選擇......

$('.line').not(':first').remove(); 

或...

$('.line').not('#this_id').remove(); 
1

你並不需要一個while循環和使用:gt(0)僞選擇器選擇與指數大於0

$('a.reset').click(function() { 
    $('.line:gt(0)').remove(); 
}); 

參考要素:所有的:gt()