Javascript JQuery-查找模型[n]。字段名和添加值

Javascript JQuery-查找模型[n]。字段名和添加值,javascript,c#,jquery,html,.net,Javascript,C#,Jquery,Html,.net,我试图在表的每一行中查找并添加索引字段的值 <tr> <td><input name="Model[0].Name" type="hidden" value="0" /></td> <td><input name="Model[0].Sched" type="hidden" value="0" /></td> <td><input name="Model[0].Comp" t

我试图在表的每一行中查找并添加索引字段的值

 <tr>
   <td><input name="Model[0].Name" type="hidden" value="0" /></td>
   <td><input name="Model[0].Sched" type="hidden" value="0" /></td>
   <td><input name="Model[0].Comp" type="hidden" value="0" /></td>
   <td><input name="Model[0].NoShow" type="hidden" value="0" /></td>                    
   <td><input name="Model[0].TotalHours" type="hidden" value="0" /></td>
 </tr>
 <tr>
   <td><input name="Model[1].Name" type="hidden" value="0" /></td>
   <td><input name="Model[1].Sched" type="hidden" value="0" /></td>
   <td><input name="Model[1].Comp" type="hidden" value="0" /></td>
   <td><input name="Model[1].NoShow" type="hidden" value="0" /></td>                    
   <td><input name="Model[1].TotalHours" type="hidden" value="0" /></td>
 </tr>

我想添加模型[n]。Sched+模型[n]。Comp+模型[n]。NoShow=模型[n]。每行的总小时数

我认为必须有一个简单的解决办法,但我必须寻找一个解决方案中使用不正确的关键字


蒂亚

遍历每一行,然后在内部遍历每一列。如果名称不包含
TotalHours
则将其值添加到总和中。如果它确实包含
TotalHours
,则将该值设置为总和。下面是一个值不为0且不隐藏的示例

$('tr')。每个(函数(索引){
var总和=0;
$('td input',this).each(函数(){
if($(this).attr('name').indexOf('TotalHours')=-1){
sum+=parseInt($(this.val());
}否则{
$(此).val(总和);
}
});
});

遍历每一行,然后在内部遍历每一列。如果名称不包含
TotalHours
则将其值添加到总和中。如果它确实包含
TotalHours
,则将该值设置为总和。下面是一个值不为0且不隐藏的示例

$('tr')。每个(函数(索引){
var总和=0;
$('td input',this).each(函数(){
if($(this).attr('name').indexOf('TotalHours')=-1){
sum+=parseInt($(this.val());
}否则{
$(此).val(总和);
}
});
});

您可以使用JavaScript字符串方法匹配输入名称

在字符串中搜索指定的值,并返回匹配的位置。该值可以是字符串或正则表达式。如果没有找到匹配项,则该方法返回-1

下面,通过每个
tr
然后,每个
输入
,搜索
变量的特定名称(如果不等于-1)
totalHours
接收以下值:

$('tr').each(function() {
    var totalHours = 0;

    $(this).find('input').each(function() {
        if ($(this).attr("name").search("Sched") != -1 
                || $(this).attr("name").search("Comp") != -1 
                || $(this).attr("name").search("NoShow") != -1) {
            totalHours += Number($(this).val());
        } 
    });

    $(this).find('input[name*="TotalHours"]').val(totalHours);
});
请查看:


您可以使用JavaScript字符串方法来匹配输入名称

在字符串中搜索指定的值,并返回匹配的位置。该值可以是字符串或正则表达式。如果没有找到匹配项,则该方法返回-1

下面,通过每个
tr
然后,每个
输入
,搜索
变量的特定名称(如果不等于-1)
totalHours
接收以下值:

$('tr').each(function() {
    var totalHours = 0;

    $(this).find('input').each(function() {
        if ($(this).attr("name").search("Sched") != -1 
                || $(this).attr("name").search("Comp") != -1 
                || $(this).attr("name").search("NoShow") != -1) {
            totalHours += Number($(this).val());
        } 
    });

    $(this).find('input[name*="TotalHours"]').val(totalHours);
});
请查看:


正如我在报告中提到的,迭代每行并搜索每行中的所有
输入。如果必须仅获取具有特定名称的输入,则可以使用:

$('tr')。每个(函数(){
//找到要设置其值的输入
$(this.find('input[name*=“TotalHours”]').val(
//找到要求和的输入
$(this).find(“[name*=”Sched“],[name*=”Comp“],[name*=”NoShow“]”)
//获取它们的值并将其转换为数字
.map(函数(){
返回编号(该值);
})
.get()
//求和
.减少(函数(和,v){
返回和+v;
})
);
});

正如我在报告中提到的,迭代每一行并搜索每一行中的所有
输入。如果必须仅获取具有特定名称的输入,则可以使用:

$('tr')。每个(函数(){
//找到要设置其值的输入
$(this.find('input[name*=“TotalHours”]').val(
//找到要求和的输入
$(this).find(“[name*=”Sched“],[name*=”Comp“],[name*=”NoShow“]”)
//获取它们的值并将其转换为数字
.map(函数(){
返回编号(该值);
})
.get()
//求和
.减少(函数(和,v){
返回和+v;
})
);
});


迭代所有行,对于每一行,找到所有
输入
元素并对前3个元素的值求和?行中还有其他字段。我把它们漏掉了,因为我认为它们无关紧要。所以前3个不起作用。必须有一种按名称查找字段的方法。确实有:。为了便于阅读,我简化了名称。帖子将遍历每一行并更新(C#)。C#我记下了,这是我不熟悉的jQuery。@Barmar,这就是她试图做的:迭代所有行,对于每一行,找到所有
input
元素,并对前3个的值求和?行中还有其他字段。我把它们漏掉了,因为我认为它们无关紧要。所以前3个不起作用。必须有一种按名称查找字段的方法。确实有:。为了便于阅读,我简化了名称。帖子将遍历每一行并更新(C#)。C#I已经放下,我不熟悉的是jQuery。@Barmar,这就是她试图做的:这似乎是将所有行的列添加到一起?我希望它是每一行,,,这似乎是将所有行的列添加到一起?我希望是每一排,,,,