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

JavaScript技术求助:仅匹配指定文本时修改文字颜色

解决方法:仅匹配指定文本时设置颜色

没问题!要实现你想要的效果,只需要调整代码的条件判断逻辑,去掉强制设置默认颜色的分支,改成仅当文本匹配目标内容时才应用对应颜色,不匹配时保留元素原本的样式即可。

核心修改点

  • 移除原代码中的三元运算符(? :)——它会强制给元素设置颜色,无论是否匹配目标文本;
  • 改用if条件判断,仅在文本匹配时执行颜色设置操作;
  • 可直接复制修改后的代码块,替换搜索文本和对应颜色,实现多场景复用。

修改后的代码示例

针对“Equipe Rosa”的版本

$(document).on('knack-view-render.any', function(event, view, data) {
  $("td.field_1416 > span , td.field_1416 > span > i").each(function() {
    // 获取目标文本并去除首尾空格
    const targetText = $(this).find("span").text().trim();
    // 仅当文本匹配时设置颜色
    if (targetText === "Equipe Rosa") {
      $(this).css("color", "#ff00ee");
    }
  });
});

复用修改为“Equipe BRANCA”的版本

$(document).on('knack-view-render.any', function(event, view, data) {
  $("td.field_1416 > span , td.field_1416 > span > i").each(function() {
    const targetText = $(this).find("span").text().trim();
    if (targetText === "Equipe BRANCA") {
      $(this).css("color", "#fff");
    }
  });
});

优化:多文本统一处理(更高效)

如果你需要针对多个文本设置不同颜色,不需要重复绑定事件,可以把所有判断放在同一个事件回调里,减少冗余:

$(document).on('knack-view-render.any', function(event, view, data) {
  $("td.field_1416 > span , td.field_1416 > span > i").each(function() {
    const targetText = $(this).find("span").text().trim();
    
    if (targetText === "Equipe Rosa") {
      $(this).css("color", "#ff00ee");
    } else if (targetText === "Equipe BRANCA") {
      $(this).css("color", "#fff");
    } else if (targetText === "Equipe VERDE") {
      $(this).css("color", "#00ff00");
    }
    // 可以继续添加更多文本-颜色配对
  });
});

为什么这样改?

原代码的三元运算符会强制覆盖元素的颜色样式,不管文本是否匹配;而改用if判断后,只有当文本完全匹配你指定的内容时,才会设置对应颜色,不匹配的元素会保留原本的默认颜色,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Guilherme Bastian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:33:16