找到单个jquery后代

时间:2012-03-16 16:19:20

标签: jquery jquery-selectors

我遇到的问题似乎应该很容易用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,以确保我有正确的元素,它确实返回整个表格行,里面有复选框,所以我很难过。有人能告诉我我错过了什么吗?

由于

3 个答案:

答案 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");

        }
    });
});​
相关问题