2016-08-02 5 views
1

削除する「トップ」ボタンから最後の<div><input type="text" name="mytext[]"></div>を削除する方法を教えてください。私は多くのフィールドを作成するときに、 "それらの上にグリフコンを削除"をクリックすると、すべてを削除します。jQueryを使用して動的リストの最後の入力フィールドを削除します

私は、フィールドの右側にある削除ボタンをクリックすると、私は新しいフィールドを作成するとき、それはフィールドを削除しますが、私は解決するためにも、上のボタン

<div class="input_fields_wrap"> 
    <button class="add_field_button"> 
     <span class="glyphicon glyphicon-plus"></span> 
    </button> 
    <button class="remove_field" ><span class="glyphicon glyphicon-trash"></span> 
    </button> 
    <div><input type="text" name="mytext[]"></div> 
</div> 
$(document).ready(function() { 
    var max_fields = 10; //maximum input boxes allowed 
    var wrapper = $(".input_fields_wrap"); //Fields wrapper 
    var add_button = $(".add_field_button"); //Add button ID 
    var x = 1; //initlal text box count 
    $(add_button).click(function (e) { //on add input button click 
     e.preventDefault(); 
     if (x < max_fields) { //max input box allowed 
      x++; //text box increment 
      $(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">\n\ 
           <button ><span class="glyphicon glyphicon-trash"></button>\n\ 
           </span></a></div>'); //add input box 
     } 
    }); 
    $(wrapper).on("click", ".remove_field", function (e) { //user click on remove glyphicon 
     e.preventDefault(); 
     $(this).parent('div').remove(); 
     x--; 
    }) 
}); 

答えて

2

から削除しますこれはnextAll('div:last')を使用できます。あなたはダブルラップあなたのjQueryオブジェクトじゃないように、私は少しJSを改正し、あった明らかだったように、私も少しHTMLを改正

$wrapper.on("click", ".remove_field", function(e) { //user click on remove glyphicon 
    e.preventDefault(); 
    $(this).nextAll('div:last').remove(); 
    x--; 
}) 

Working example

注:これを試してみてくださいグリフコンを使用しなくてもボタンを追加/削除できます。

+0

回答ありがとうございます:) – RosS

0

この親の最後の子を見つけて削除する必要があります。

$(wrapper).on("click", ".remove_field", function (e) { //user click on remove glyphicon 
    e.preventDefault(); 
    $(this).parent().children('div:last-child').remove(); 
    x--; 
}) 
関連する問題