2016-06-28 91 views
1

我想添加不同名稱的輸入框到使用jQuery的DOM添加按鈕,並刪除使用另一個刪除按鈕創建的最後一個輸入框。但似乎remove功能不工作。控制檯在remove中給出價值。Javascript刪除功能不與名稱選擇工作

代碼:

$(document).ready(function() { 
 

 
    set = 5; 
 
    $('#show4').click(function() { 
 

 
    $('#form4').append('<br/>Friends name<input type="text" name="namex' + set + '" />Friends msg<textarea rows="4" cols="50" name="msg' + set + '" />'); 
 

 
    set = set + 1; 
 
    console.log(set) 
 

 
    }); 
 

 
    $('#show5').click(function() { 
 
    console.log(set - 1) 
 

 

 
    $('input[name=namex]' + set - 1).remove(); 
 
    $('input[name=msg]' + set - 1).remove(); 
 
    set = set - 1; 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="show4">Add more friends</button> 
 
<button id="show5">Remove friends</button> 
 
<span id="form4"></span>

回答

1

'input[name=namex]'+set-1評估爲NaN,因爲JS會嘗試添加set作爲一個字符串,然後。減去1從一個字符串,導致NaN的,這意味着不號碼

嘗試'input[name=namex'+(set-1) + ']'

UPDATE

下面是更新片段。使得它一點點簡單的用包裝成一個div

$(document).ready(function() { 
 

 
    var set = 5; 
 
    $('#show4').click(function() { 
 

 
    $('#form4').append('<div id="friend' + set + '"><br/>Friends name<input type="text" name="namex' + set + '" />Friends msg<textarea rows="4" cols="50" name="msg' + set + '" /></div>'); 
 

 
    set = set + 1; 
 
    console.log(set) 
 

 
    }); 
 

 
    $('#show5').click(function() { 
 
    console.log(set - 1) 
 

 
    \t set = set - 1; 
 
    $('#friend' + set).remove(); 
 
    
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="show4">Add more friends</button> 
 
<button id="show5">Remove friends</button> 
 
<span id="form4"></span>

+0

嘗試,但它不工作 –

+0

@DeepakGupta我的答案更新。你太早關閉了方括號。試試這個請 – Grgur

+0

非常感謝它的工作 –