toggleClass仅适用于td,而不适用于整个tr

时间:2015-01-14 09:12:56

标签: javascript jquery

我正在使用数据表,每行都有一个复选框..

如果单击该复选框,则总计将有一个名为"选中"

的班级

所以这是我的代码

           $("#domains_list").find("input[name=\'chk[]\']").on("click", 
                            function() 
                            {
                                $(this).closest("tr").toggleClass("selected");
                            });

但问题是,不是选择整个班级,而是强调特定的td。

这是一个截图

enter image description here

所以,我怎么能解决这个问题,有什么办法吗?

2 个答案:

答案 0 :(得分:0)

我通过遵循jQuery代码达到了同样的目的,我希望这将解决你的问题。

 $(function() {  
  $('td:first-child input').change(function() {
    $(this).closest('tr').toggleClass("selected");
   });
 });

答案 1 :(得分:0)

正如Zougen指出的那样,你的JS是正确的 - 这就是为什么输入旁边的td被着色而不是包含输入本身的td。其他tds不会因为你的CSS被覆盖而突出显示。

但有一件事:你的选择器看起来有点奇怪:

.find("input[name=\'chk[]\']")这里你不需要逃避单',因为你的字符串分隔符是",只需写:

$('td input[name*="chk"]').change(function() {
  $(this).closest('tr').toggleClass("selected");
});