2015-04-01 63 views
0

我正在使用datatables.jshttps://www.datatables.net/并且正在运行中,我希望用户为显示的触及表选择一行。允许为每个显示的数据表选择一行

我已经尝试了几件事,但无法让它工作,我的脚本检查所有的数据表而不是你选择的。我的理解是因为在我的代码中我使用var table = $('table').DataTable();来获取所有表

但我不知道如何指定它,因此它检查是否在数据表中的某一行上设置了selected类。

var table = $('table').DataTable(); 

$('table tbody').on('click', 'tr', function() { 
    if ($(this).hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } 
    else { 
     table.$('tr.selected').removeClass('selected'); 
     $(this).addClass('selected'); 
    } 
}); 
+1

你试图让选择在多个表的工作吗?例如。你有3个表格,你希望每个表格都有它自己的选择处理。如果是这种情况,我会看到两个选项,或者分别使用ID设置每个表或者在on()事件中获取父表**在函数内部,就像'var table = $(this).closest( “table”)' – 2015-04-01 14:36:37

+0

是的,我得到了5张桌子,所有5张桌子里面都有数据。我想这样做,当有人点击一行时,它会突出显示(通过添加一个类),并允许它只突出显示每个表的一行。我会检查你的建议@ amura.cxg – Jordy 2015-04-01 14:38:36

+0

我试过你的第二个猜测,它的工作@ amura.cxg非常感谢! – Jordy 2015-04-01 14:42:23

回答

1

on()事件中获取行的表而不是使用函数外定义的表。

代码

$('table tbody').on('click', 'tr', function() { 
    var table = $(this).closest("table"); 
    if ($(this).hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } 
    else { 
     table.$('tr.selected').removeClass('selected'); 
     $(this).addClass('selected'); 
    } 
}); 
+1

感谢上帝,jQuery具有这些功能,使生活更轻松。非常感谢您为我分类! – Jordy 2015-04-01 14:51:17

+0

什么是'table。$('tr.selected')'? – charlietfl 2015-04-01 14:53:48

+0

在表内搜索一个'tr',并选择类'@charlietfl – Jordy 2015-04-01 14:54:54

相关问题