2016-06-28 86 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

非常感谢它的工作 –