そのため、次Array
のような一連の繰り返しで満たされた があり['hey','hey','yeh']
、送信されたテキストが一致する場合に配列からエントリを削除する html フォームがあります。しかし、私の JS/jQuery は思い通りに機能していないようです。すべての一致とは対照的に、ボタンを押すたびに最初のいくつかのエントリのみが削除されるようです(これが私が望んでいることです)。私の「各」関数は、配列内のすべての項目を調べて、送信されたものに一致するすべてのエントリを削除するべきではありませんか?
HTML:
<form id="remove_user" action="#" method="post">
<label for="user_num">Remove user:</label>
<input type="text" id="user_num" name="user_num" placeholder="number">
<input type="submit" value="(-) remove">
</form><!-- #remove_user -->
<ul id="user_list"></ul><!-- #user_list -->
JS を変更して更新しましたが、まだ機能しません:
$('#remove_user').submit(function(){
id = $('#user_num').val();
$.each(myArr, function(i, value){
if (value == id){
myArr.splice(i, 1);
};
});
$('#user_list').html('');
for (var i=0; i < myArr.length; i += 1) {
$('#user_list').append('<li>' +myArr[i]+ '</li>');
};
return false;
});