我遇到的问题似乎应该很容易用JQuery做。基本上我的页面上有一张桌子。表格上的每一行都有一个复选框和一个金额单元格。我正在尝试编写一个将遍历每一行的函数,并检查是否已选中该复选框。如果是这样,它会将金额添加到我的总数中,以便我可以在页面底部显示它。由于某种原因,我找不到我的复选框。下面是页面上的html。
<div class="BillAccordian">
<h3><A href="#">Past Due Bills - Total $ 1047.62 </A></h3>
<div>
<table style="background-color:Red">
<tr>
<td>
<input class="RowSelector" id="BillInfo_PastDueBills_0__Selected" name="BillInfo.PastDueBills[0].Selected" type="checkbox" value="true" />
<input name="BillInfo.PastDueBills[0].Selected" type="hidden" value="false" />
</td>
<td>
RE
</td>
<td>
334
</td>
<td>
1047.62
</td>
<td>
Bill Number 20121
</td>
</tr>
</table>
</div>
</div>
这是我现在正在使用的JQuery脚本,试图完成这个
$('input.RowSelector').click(function () {
var sum = 0;
alert("1");
// we want to sum up the values of all input.sum elements that are in the same tr
// as this one
$('tr').each(function (e) {
var val;
alert($(this).find(".RowSelector")[0].is(':checked'));
if ($(this).closest("input.RowSelector").val() == true) {
alert("3");
// val = parsefloat($(i).find(".BillAmount").val());
//
// if (isNaN(val) || val === undefined) {
// return;
}
// sum += val;
});
// $(this).find('#SelectedTotal').val(formatDollar(sum));
});
});
现在有很多内容被注释掉了,因为我只是想抓住我需要继续选择的选择器。使用函数中的警报我什么都没得到。我认为它不喜欢[0]我添加但是使用find而不是它我一直没有回来。我确实检查了我的$ this.html,以确保我有正确的元素,它确实返回整个表格行,里面有复选框,所以我很难过。有人能告诉我我错过了什么吗?
由于
答案 0 :(得分:0)
$('tr').each(function (e) {
if ($(this).find('input:checked').length > 0)
{
// Do calculation
}
}
答案 1 :(得分:0)
你可以做到
$('tr').each(function (e) {
var val = 0;
if ($('input:checkbox:checked', this).length > 0){
val = parseInt($('td:eq(3)', this).text(), 10);
}
sum += val;
});
答案 2 :(得分:0)
使用此选项查找已选中的复选框:
$('input.RowSelector').click(function() {
var sum = 0;
$('tr').each(function(e) {
var val;
if ($(this).find(".RowSelector:checked").val() == "true") {
alert("3");
}
});
});