我有以下代码将复选框值推送到数组。我希望能够从数组中删除值,如果复选框未选中。任何人都可以告诉我如何做到这一点。复选框值数组添加和从数组中删除
var arr_sort = new Array();
$(".sort").change(function(){
$.each($("input[name='sort']:checked"), function() {
arr_sort.push($(this).val());
});
});
我有以下代码将复选框值推送到数组。我希望能够从数组中删除值,如果复选框未选中。任何人都可以告诉我如何做到这一点。复选框值数组添加和从数组中删除
var arr_sort = new Array();
$(".sort").change(function(){
$.each($("input[name='sort']:checked"), function() {
arr_sort.push($(this).val());
});
});
答:http://jsfiddle.net/morrison/S3e2f/
注:
- 忽略了答案,如果触发事件是不是复选框的Click事件。
你应该创建一个小的功能,将来自于复选框的Click事件触发数组中删除的值。
function removeVal(arr, val)
{
for(var i = 0; i < arr.length; i++)
{
if (arr[i] == val)
arr.splice(i, 1);
}
}
找到下面的工作示例:
您可以使用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.
我明白你的意思了。我现在使用了你的解决方案,也许你可以回答这个问题。 http://stackoverflow.com/questions/7314060/multidimensional-array-of-multi-checkbox-group-values-jquery-post-array-ajax它是不好的形式来改变答案? – madphp
不需要更改答案。 –