3

デモ

$(function (){                
    selectServiceRow(1) ;
    $(document).on('click', '#tableList', function (e){
         var index = parseInt($(e.target).closest('tr').index());
         if(index==0){return;}
         selectServiceRow(index);
    });
});

function selectServiceRow(rowIndex){                 
     $('#tableList').find('tr').eq(rowIndex)
          .removeClass('csstrred').addClass('csstablelisttdselected');
}

上記のフィドルから、テーブルの任意の行をクリックすると、デフォルトで最初の行が選択されていることがわかります。ID「エラー」を持つ行はすべて赤で表示されますが、クリックされた行にはクラスcsstablelistselectedが必要です*例: *デフォルトで最初の行が選択されています。4 番目の行をクリックすると、1 番目の行のクラスが赤いので表示されます。tri id は「エラー」です。

4

2 に答える 2

1

の複数の ID を使用しています。実際errorには、代わりにクラスを使用する必要があります (重複した ID を使用することはお勧めできません。それらをすべて選択すると悪夢になる可能性があります)。

とにかく、これはそれを解決します:

function selectServiceRow(rowIndex)
{
    var found = $("#tableList tr:eq(" + rowIndex + ")");
    $("#tableList tr").removeClass("csstablelisttdselected");
    $("#tableList tr[id='error']").addClass("csstrred");
    found.addClass('csstablelisttdselected').removeClass("csstrred");   
}

フィドル: http://jsfiddle.net/WVQ5p/5/

于 2013-03-12T11:21:49.397 に答える
1

これを試して:

$(function ()
{                
    selectServiceRow(1) 

    $(document).on('click', '#tableList', function (e)
    {
        $('#tableList tr.csstablelisttdselected').each(function(){
            $(this).removeClass('csstablelisttdselected');
        });
        var index = parseInt($(e.target).closest('tr').index());
        if(index==0){return;}
        selectServiceRow(index);
    });
});

フィドル: http://jsfiddle.net/WVQ5p/4/

于 2013-03-12T11:25:40.330 に答える