我在此链接上有示例表格和复选框。 https://jsfiddle.net/q8aub965/
在单击checkboxAll的示例中,所有表都会突出显示。我'喜欢只突出显示每个checkboxAll的特定表。表具有唯一的表ID。我怎样才能达到这个效果?表格都是一样的。复选框是php生成的。谢谢你的时间和帮助!
(注意:如果您可以提供没有复选框的解决方案,我也会对此开放)
示例复选框代码:
<form id="form1" name="form1" method="post" action="">
<label>
<input type="checkbox" name="SelectAll" class="all" />All (for table1)
</label>
<label>
<input type="checkbox" name="2" class="selector" />2
</label>
<label>
<input type="checkbox" name="7" class="selector" />7
</label>
<label>
<input type="checkbox" name="7" class="selector" />7
</label>
</form>
答案 0 :(得分:1)
更改您的功能,使其接受3个参数:
最后一个可以是可选的。然后你改变你的jQuery只访问表(如果有的话)并用给定的值更改单元格。
function foo(check, value, table){
if(table && table != ''){
table = '#'+table;
}else{
table = 'table';
}
$(table+' td').each(function(i,e){
if(($(e).html() == value || '' == value) && check){
$(e).addClass('highlight');
}else{
$(e).removeClass('highlight');
}
});
}
使用此功能,您可以为每个复选框指定正确的函数调用:
foo(true, '2', 'tb1'); // select all calls with '2' in table 'tb1'
foo(true, '2'); // select all calls with '2' in all tables
foo(false, '1', 'tb2'); // deleslect all cells in table 'tb2'
只需将以下内容添加到您的html代码中:
<div>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="checkbox" name="SelectAll" onclick="foo($(this).is(':checked'), '', 'tb1')" class="all" />All (for table1)</label>
<label>
<input type="checkbox" name="2" onclick="foo($(this).is(':checked'), '2', 'tb1')" class="selector" />2</label>
<label>
<input type="checkbox" name="7" onclick="foo($(this).is(':checked'), '7', 'tb1')" class="selector" />7</label>
<label>
<input type="checkbox" name="7" onclick="foo($(this).is(':checked'), '7', '')" class="selector" />7 in all Tables</label>
</form>
// and so on