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,这就是她试图做的:这似乎是将所有行的列添加到一起?我希望它是每一行,,,这似乎是将所有行的列添加到一起?我希望是每一排,,,,