表:选定的行和循环列JQuery和JavaScript

时间:2012-05-18 14:15:13

标签: javascript jquery

我有两个问题:)

  1. 我使用Jquery在第一列中选​​择表行和复选框,如何使2和7列不可点击。我的意思是如果你单击7列的单元格,它将不会选中复选框,也不会添加“选定”类。

    $('#tableID tbody tr')
        .filter(':has(:checkbox:checked)')
        .addClass('selected')
        .end()
        .click(function (event) {
            $(this).toggleClass('selected');
            if (event.target.type !== 'checkbox') {
                $(':checkbox', this).attr('checked', function () {
                    return !this.checked;
                });
            }
        });
    
  2. 我正在使用JavaScript添加所有一个列值,当表没有合并的单元格时,脚本工作正常。如何使其与合并的单元格一起使用。

  3. _________                             _________
    |_|_|_|_|                             |   |_|_|
    |_|_|_|_|    script working           |___|_|_|     script doesn't work
    |_|_|_|_|                             |_|_|_|_|
    |_|_|_|_|                             |___|_|_|
    function count() {
    
        var i;
        var sum=0;
        var table = document.getElementById("tableID");
        for (i=1;i<table.rows.length-1;i++) {
            sum += Number(table.rows[i].cells[3].innerHTML, 10);
        }
        document.getElementById('sum1').innerHTML = sum;
    }
    

    第二部分的HTML代码:http://jsfiddle.net/f4zH9/

    由于

1 个答案:

答案 0 :(得分:1)

对于第一部分,我发现了一种解决问题的不同方法:

$('#tableID tbody tr').each(function() {
    $('td', $(this)).click(function() {
        var index = $(this).index();
        if(index != 1 && index != 6) {
             $(this).parent().toggleClass('selected');
            if (event.target.type !== 'checkbox') {
                $(':checkbox', $(this).parent()).attr('checked', function () {
                    return !this.checked;
                });
            }
        }
    });
});​

这会将click事件绑定到每个单元格,当用户单击并检查单元格的索引时,有效地检查您单击的列。如果索引是1或6(第2列或第7列),那么它什么都不做。这里有一个jsfiddle来展示它的实际效果:http://jsfiddle.net/cchana/vCVwv/2/

对于你的问题的第二部分,你的for循环存在问题,而不是:

for (i=1;i<table.rows.length-1;i++)

不要忘记JavaScript从0开始计数,你应该

for (i=0;i<table.rows.length;i++)

创建一个jsfiddle以显示它的实际效果:http://jsfiddle.net/cchana/WRtZP/