1

我希望能够计算单元格具有特定值的所有行的计数。因此,如果给出下表,用户选中第 1 行旁边的复选框,我会得到以下信息。

选定的奖励行 = 1 选定的基本行 = 0

如果我选中第 2 行旁边的框,我会得到以下值

选定的奖励行 = 选定的 2 个基本行 = 0

如果我取消选中第二行并选中第三行,我会得到......

选定的奖励行 = 1 选定的基本行 = 1

我可以通过这种方式获得选择的总行数......

$(function(){
var $ck = $('input[type=checkbox]');
    $ck.filter(':checked').length;
)};

我可以以某种方式将选择器链接在一起吗?这行不通,但这是我的想法...

m1 = $ck.filter(':checked')
               .parents('tr:first')
               .filter('.type')
               .text('Bonus')
               .length;
alert(m1); // returns 0

这是一个示例表

<table>
    <thead>
    <tr>
        <th>Points</th>
        <th>Bonus</th>
        <th>&nbsp;</th>
    </tr>   
</thead>
<tbody>
    <tr>
        <td class=".points">10</td>
        <td class=".type">Bonus</td>
        <td class=".chkbox"><input type="checkbox"></td>
    </tr>
    <tr>
        <td class=".points">20</td>
        <td class=".type">Bonus</td>
        <td class=".chkbox"><input type="checkbox"></td>
    </tr>
    <tr>
        <td class=".points">10</td>
        <td class=".type">Base</td>
        <td class=".chkbox"><input type="checkbox"></td>
    </tr>
    <tr>
        <td class=".points">20</td>
        <td class=".type">Base</td>
        <td class=".chkbox"><input type="checkbox"></td>
    </tr>
</tbody>

4

1 回答 1

0

你可以试试这个

var chk=$('td.chkbox input:checkbox');
chk.on('change', function(){
    var checked=chk.filter(':checked');
    var bonus=0, base=0;
        checked.filter(function(){ 
        bonus+=$(this).closest('tr').find('td.type:contains("Bonus")').length;
        base+=$(this).closest('tr').find('td.type:contains("Base")').length;
    });
    $('div#result').html('Bonus rows selected = '+bonus+' Base rows selected = '+base);
});

class=".className"应注意class="className"

一个例子在这里

于 2012-12-23T03:05:45.923 回答