0

2つの質問があります:)

  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を使用して1つの列の値をすべて追加していますが、テーブルにセルが結合されていない場合、スクリプトは正常に機能しています。結合されたセルで機能させる方法。

_________                             _________
|_|_|_|_|                             |   |_|_|
|_|_|_|_|    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;
}

2番目の部分のHTMLコード:http://jsfiddle.net/f4zH9/

ありがとう

4

1 に答える 1

1

パート 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;
                });
            }
        }
    });
});​

これにより、クリックイベントが各セルにバインドされ、ユーザーがクリックしてセルのインデックスをチェックすると、クリックしている列が効果的にチェックされます。インデックスが 1 または 6 (列 2 または 7) の場合、何もしません。これが実際に動作していることを示すjsfiddleです:http://jsfiddle.net/cchana/vCVwv/2/

質問のパート 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/

于 2012-05-18T14:48:14.070 に答える