已选择数据表 class

Datatables class selected

我想将 class 添加到选定的行,当我初始化 table 并单击行时,我的代码运行良好。

 $('#dataTables-example tbody').on( 'click', 'tr', function () {            
        if ( $(this).hasClass('selected') ) { 
            $(this).removeClass('selected'); 
        } 
        else {                 
            table.$('tr.selected').removeClass('selected'); 
            console.log($(this).text());
            $(this).addClass('selected').css('color', 'red');                
        }  

      });

但是当我通过 Ajax 重新初始化 table 并单击添加 class 的新行时 'selected' 不起作用。

我猜你这里有语法错误:

table.$('tr.selected').removeClass('selected'); 

应该是:

table.find('tr.selected').removeClass('selected'); 

您需要找到具有 class 名称 selectedtr 元素,如果它已从中删除 class 名称。

试试这个

$(function() {
      $('#dataTables-example tbody tr').click(function() {
        $('#dataTables-example tbody tr').removeClass('selected');
        var el = $(this);
        el.addClass('selected');
      })

    });

添加 off('click', 'tr') 有帮助。

$('#dataTables-example tbody').off('click', 'tr').on( 'click', 'tr', function () {            
    if ( $(this).hasClass('selected') ) { 
        $(this).removeClass('selected'); 
    } 
    else {                 
        table.$('tr.selected').removeClass('selected'); 
        console.log($(this).text());
        $(this).addClass('selected').css('color', 'red');                
    }  

  });