Javascript 如何在tr'表上切换类;s

Javascript 如何在tr'表上切换类;s,javascript,jquery,html,Javascript,Jquery,Html,我在一页上有多个表。 对于每个表,我希望能够在点击tr时切换一个类 到目前为止,这就是我对js的看法: $(document).ajaxSuccess(function () { $("table tr").click(function () { if ($(this).closest("table tr").hasClass("selected_row")) { $(this).closest("table tr").removeClass("selected_row

我在一页上有多个表。 对于每个表,我希望能够在点击tr时切换一个类

到目前为止,这就是我对js的看法:

 $(document).ajaxSuccess(function () {
 $("table tr").click(function () {

     if ($(this).closest("table tr").hasClass("selected_row"))
     { $(this).closest("table tr").removeClass("selected_row"); }

     else { $(this).closest("table tr").addClass("selected_row"); }
 });
});
现在的问题是,当我点击这个表中的第二个tr时,前一行保留了添加到它的类。如何使任何表上一次只能有一个tablerow具有该类

此外,页面上有时有多个表,因此解决方案需要仅与正在单击的表相关,而不是与页面上的所有表相关

谢谢,
Mark

获取选择器的父级,这已经是表tr,请尝试以下操作:

   if ($(this).hasClass("selected_row")) {
       $(this).removeClass("selected_row");
   } else {
       $(this).addClass("selected_row");
       $(this).siblings().removeClass('selected_row');
   }

获取选择器的父级,这已经是表tr,请尝试以下操作:

   if ($(this).hasClass("selected_row")) {
       $(this).removeClass("selected_row");
   } else {
       $(this).addClass("selected_row");
       $(this).siblings().removeClass('selected_row');
   }

无需向每个表行添加onclick处理程序。使用事件气泡对您有利。如果类存在,则使用同级获取该类

$("table tbody").on("click", "tr", function() {
    var row = $(this);
    row.toggleClass("selected_row");
    row.siblings("selected_row").removeClass("selected_row");
});

无需向每个表行添加onclick处理程序。使用事件气泡对您有利。如果类存在,则使用同级获取该类

$("table tbody").on("click", "tr", function() {
    var row = $(this);
    row.toggleClass("selected_row");
    row.siblings("selected_row").removeClass("selected_row");
});

如果您要坚持使用If语句路由而不是toggleClass,则不需要在其所在的位置设置同级行。行应该在if中,然后我必须在if和else中添加它,就像这样,我的意思是只在else中,如果行被选中,那么其他行就不能被选中。如果您要坚持使用If语句路由而不是toggleClass,则不需要在其所在的位置设置同级行。行应该在if中,然后我必须在if和else中添加它,就像这样,我的意思是只在else中,如果行被选中,那么其他行就不能被选中。