【发布时间】:2015-09-09 13:23:16
【问题描述】:
我有一组从数据库中选择查询时生成的复选框。
<input type="checkbox" name="grade_checkbox[]" class="grade_checkbox" value="1">
//value of checkbox is getting from database table.I have put value =1 as an example
单击每个复选框时,我将复选框的值存储到一个数组中。
var selected_grades = [];
$(".grade_checkbox").click(function(){
if(!$(this).is(":checked")
{
//remove the checkbox value from the array since it is unchecked
if($.inArray($(this).val(),selected_grades)!==-1)
{
selected_grades.remove(selected_grades.indexOf($(this).val()));
}
}
selected_grades = $('input:checkbox:checked.grade_checkbox').map(function () {
return this.value;
}).get();
console.log(selected_grades);
});
selected_grades 是一个数组,用于存储被选中的复选框值。
当我选中每个复选框时,数组selected_grades 会显示在控制台中,其中包含所有选中的复选框值。
当我尝试取消选中任何复选框时,我实际上是在尝试从上述数组中删除该元素(如果存在)。但是我收到以下错误
TypeError: selected_grades.remove is not a function
我不知道为什么会这样。
【问题讨论】:
-
使用
array.splice()。 developer.mozilla.org/en/docs/Web/JavaScript/Reference/… -
你能在 jsfiddle 上复制同样的内容吗,jsfiddle.com
-
@palash 的回答为我提供了输出。感谢您的帮助心态