我有以下代码将复选框值推送到数组。如果取消选中复选框,我希望能够从数组中删除值。任何人都可以告诉我如何做到这一点。
var arr_sort = new Array();
$(".sort").change(function(){
$.each($("input[name='sort']:checked"), function() {
arr_sort.push($(this).val());
});
});
答案 0 :(得分:2)
- 如果触发事件不是复选框的点击事件,请忽略答案。
你应该创建一个小函数,在复选框的click事件触发器上删除数组中的值。
function removeVal(arr, val)
{
for(var i = 0; i < arr.length; i++)
{
if (arr[i] == val)
arr.splice(i, 1);
}
}
找到下面的工作示例:
答案 1 :(得分:1)
答案:http://jsfiddle.net/morrison/S3e2f/
备注:强>
答案 2 :(得分:1)
由于您正在循环查看任何更改的排序复选框,因此最简单的解决方法是在arr_sort
之前清空$.each()
数组吗?
答案 3 :(得分:0)
$(".sort").change(function()
{
var arr_sort = new Array();
$(".sort").each(function()
{
if( $(this).is(':checked') )
{
arr_sort.push($(this).val());
}
});
});
答案 4 :(得分:0)
您可以使用map或grep删除数组中不符合条件的元素。类似的东西:
var arr_check = $.grep(arr_sort,function(value){return value == ?? ;}); // since you're saving $(this).val() your array has checkbox value, so you have to filter with those values.