使用jquery表中的复选框从数组中删除JavaScript对象

使用jquery表中的复选框从数组中删除JavaScript对象,javascript,jquery,arrays,asp.net-mvc,checkbox,Javascript,Jquery,Arrays,Asp.net Mvc,Checkbox,我正在处理这个项目,我面临一个问题:我已经创建了jQuery表,并选中了复选框获取特定行的所有值并将其推入数组,现在我想在取消选中该行时从数组中删除每个行记录。我已经为remove编写了一些脚本,但它不能正常工作。还告诉我,在jQuery表中,有没有任何简单的方法可以通过复选框获取特定行的数据 脚本 $.ajax({ 键入:“POST”, url:“/Student/GetFee”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 数据:JSON

我正在处理这个项目,我面临一个问题:我已经创建了jQuery表,并选中了复选框获取特定行的所有值并将其推入数组,现在我想在取消选中该行时从数组中删除每个行记录。我已经为remove编写了一些脚本,但它不能正常工作。还告诉我,在jQuery表中,有没有任何简单的方法可以通过复选框获取特定行的数据

脚本

$.ajax({
键入:“POST”,
url:“/Student/GetFee”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:JSON.stringify({Class_Id:Class_Id}),
成功:功能(列表){
$(“#视图”).html(“”);
$。每个(列表、函数(键、值){
变量html=$(
'' +
''+value.Id+''值+
''+value.FeeHeadName+''值+
''+value.SchoolName+''值+
''+value.ClassName+''值+
''价值+金额''+
'' + "" + '' +
'' + "" + '' +
'' + "" + '' +
'' + "" + '' +
'');
$(“#视图”).append(html);
html='';
});
//在数组中推送对象
$('#查看输入[type=checkbox]')。单击(函数(){
var行=$(this).closest('tr');
var id=row.find('td:eq(0)').text();
var fname=row.find('td:eq(1)').text();
var sname=row.find('td:eq(2)').text();
var cname=row.find('td:eq(3)').text();
var amount=row.find('td:eq(4)').text();
var paid=row.find($('.paid')).val();
var discount=row.find($('.discount')).val();
var netAmount=row.find($('.netAmount')).val();
如果($(this).is(“:checked”)){
信息推送({
费(Id):Id,,
FeeHeadName:fname,
斯奈姆:斯奈姆,
cname:cname,
金额:金额,,
付费:付费,
折扣:折扣,
NetAmount:NetAmount
});                            
控制台日志(信息);
}
否则{
如果($(this).not(“:checked”)){
var x=info.indexOf($(this.val());
信息拼接(x,1);
控制台日志(信息);
}
}
});
}

});您必须在数组中循环,并检查哪一个具有未选中行的id

if ($(this).not(":checked")) {
    var indexToRemove = -1;

    for (var i = 0; i < info.length; i++) {
        if (info[i].Fee_id == id) {
            indexToRemove = i;
            break;
        }
    }
    if (indexToRemove != -1) {
        info.splice(indexToRemove, 1);
    }
}
if($(this).not(“:checked”)){
var-indexToRemove=-1;
对于(变量i=0;i
您正在查找复选框的$(this).val(),但是否将其插入任何位置?您正在向数组中添加复杂对象,但在尝试删除时仅检查复选框的值(这是一个简单的值)(它们不是同一件事)。但你到底想在这里做什么。如何使用数组。如果它要发布,那么为什么不在submit方法中构建数组呢?它不起作用。我已经将警报放在If(info[i].Fee_id==id)之后,它没有显示任何alertindexToRemove总是出现-每个未选中的变量“id”都有值?语句:var row=$(this.nexist('tr');var id=row.find('td:eq(0)').text();应该在取消选中方法之前调用我只是在中断之前将info.splice(indexToRemove,1)放在上面的if语句中,它对我有效,我已经删除了第二个if条件谢谢你的帮助