You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修复JS代码:交换表格tr元素的.vermelho与.azul类样式

问题分析与解决方案

你的代码逻辑存在问题,导致点击按钮后所有行变成单一颜色:

当页面同时存在.vermelho和.azul类的行时,第一个if条件会成立(只要有一个.vermelho元素存在就会触发),此时所有.vermelho行都会被改成.azul。执行完这个操作后,页面上所有可变色的行都变成了.azul,而else if分支因为是互斥判断,根本不会执行——所以第一次点击后表格全蓝;再次点击时,因为没有.vermelho元素,会触发else if,把所有.azul改成.vermelho,表格全红。

修正后的代码

只需要修改JS部分,遍历每一行单独判断切换类即可:

function invertStyle() {
  // 遍历所有带有vermelho或azul类的表格行
  $('tr.vermelho, tr.azul').each(function() {
    const $row = $(this);
    if ($row.hasClass('vermelho')) {
      $row.removeClass('vermelho').addClass('azul');
    } else {
      $row.removeClass('azul').addClass('vermelho');
    }
  });
}

为什么这样有效

通过.each()方法逐个处理每一行,针对当前行的类单独进行切换,不会因为批量修改某一类元素导致所有行变成同一颜色,完美实现两类样式的互转。

内容的提问来源于stack exchange,提问作者Rute Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 06:47:24