Javascript 如何在数组中获取选中的值并删除未选中的值
我使用数组作为复选框值, 如果我点击复选框,它会得到值,如果我取消选中这个复选框,它会删除它的值,而不是保存在数组中,这是我的代码Javascript 如何在数组中获取选中的值并删除未选中的值,javascript,jquery,asp.net-mvc-4,checkbox,partial-views,Javascript,Jquery,Asp.net Mvc 4,Checkbox,Partial Views,我使用数组作为复选框值, 如果我点击复选框,它会得到值,如果我取消选中这个复选框,它会删除它的值,而不是保存在数组中,这是我的代码 function selectUser(sender) { if (sender.prop('checked'),true) assignedTo[assignedTo.length] = sender.id; else { for (var i = 0; i < assig
function selectUser(sender) {
if (sender.prop('checked'),true)
assignedTo[assignedTo.length] = sender.id;
else {
for (var i = 0; i < assignedTo.length; i++) {
if (sender.id == assignedTo[i]) {
assignedTo.splice(i, 1);
break;
}
}
}
}
功能选择用户(发送者){
if(sender.prop('checked'),true)
assignedTo[assignedTo.length]=发送方id;
否则{
对于(变量i=0;i
现在我的问题是,如果选中该选项,它将保存值,如果取消选中该选项,它不会从数组中删除值,那么有什么帮助吗
var values=[];
$(".cbx").click(function(){
values=[];
$(".cbx").each(function(){
if($(this).is(":checked"))
values.push($(this).val());
});
alert(values);
});
或
你采取的方法可能会非常乏味。您可以使用
.map()
每次选中或取消选中复选框时都可以重新计算数组,如下所示:
$(':checkbox[name=test]')。在('change',function()上{
var assignedTo=$(':复选框[name=test]:checked').map(函数(){
返回此.id;
})
.get();
//仅用于演示目的
$('pre.out').text(JSON.stringify(assignedTo));
});代码>
1
2
3
4
5
6
7
请提供相应的HTML或创建一个JSFIDLE来演示什么不起作用。为什么不使用.push()
和.pop()
来添加和删除数组中的值。感谢您的回答。正是我想要的。
var values=[];
$(".cbx").change(function(){
if($(this).is(":checked"))
values.push($(this).val());
else{
var x = values.indexOf($(this).val());
values.splice(x,1);
}
alert(values);
});