Javascript toggleClass仅在td上工作,而不在整个tr上工作

Javascript toggleClass仅在td上工作,而不在整个tr上工作,javascript,jquery,Javascript,Jquery,我使用的数据表每行都有一个复选框 单击复选框时,总数将有一个名为“selected”的类 这是我写的代码 $("#domains_list").find("input[name=\'chk[]\']").on("click", function() { $(this).closest("tr").

我使用的数据表每行都有一个复选框

单击复选框时,总数将有一个名为“selected”的类

这是我写的代码

           $("#domains_list").find("input[name=\'chk[]\']").on("click", 
                            function() 
                            {
                                $(this).closest("tr").toggleClass("selected");
                            });
但问题是,并没有选择整个类,而是只突出显示特定的td

这是一个截图


那么,我该如何解决这个问题,有什么办法吗?

我通过使用jQuery代码达到了同样的目的,我希望这也能解决您的问题

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

正如Zougen指出的,您的JS是正确的——这就是为什么输入旁边的td是彩色的,而不是包含输入本身的td。其他tds不会突出显示,可能是因为您的CSS正在被覆盖

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

.find(“input[name=\'chk[]\']”
在这里您不需要转义单个
,因为您的字符串分隔符是
,总之,只需编写:

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

你能提供你的html吗?你的javascript本身是有效的:因此我们需要查看你的CSS和html以了解问题所在。它可能与CSS相关,而不是javascript。确保其他单元格具有与tr.selected的子级相关的CSS规则,如
tr.selected*{background:#eee;}