【问题标题】:If the status is RECIEVED then background colour is Green如果状态为 RECEIVED,则背景颜色为绿色
【发布时间】:2021-05-12 04:57:20
【问题描述】:

如果第 7 列中的状态包含具有“RECIEVED”值的行,我想突出显示行颜色为绿色。

下面的代码是将与Google sheet相关的搜索结果数据显示到google webapp。

var searchResultsBox = document.getElementById("searchResults");
var templateBox = document.getElementById("rowTemplate");
var template = templateBox.content;

searchResultsBox.innerHTML = "";

resultsArray.forEach(function(r){

var tr = template.cloneNode(true);
var l1Column = tr.querySelector(".L1");
var l2Column = tr.querySelector(".L2");
var l3Column = tr.querySelector(".L3");
var l4Column = tr.querySelector(".L4");
var l5Column = tr.querySelector(".L5");
var l6Column = tr.querySelector(".L6");
var l7Column = tr.querySelector(".L7");
var l8Column = tr.querySelector(".L8");

l1Column.innerHTML = r[0];
l2Column.innerHTML = r[1];
l3Column.innerHTML = r[2];
l4Column.innerHTML = r[3];
l5Column.innerHTML = r[4];
l6Column.innerHTML = r[5];
l7Column.innerHTML = r[6];
if (l7Column.innerHTML = r[6] === "RECEIVED") row.style.backgroundColor = "green";
l8Column.innerHTML = r[7];


searchResultsBox.appendChild(tr);


});

}

我添加了这个 if (l7Column.innerHTML = r[6] === "RECEIVED") row.style.backgroundColor = "green"; 但状态在第 7 列中显示为 false

screenshot of the search panel

我哪里做错了?

【问题讨论】:

  • 试试if (l7Column.innerHTML === "RECEIVED")if ( r[6] === "RECEIVED")
  • @Sergey 错误值消失了,但它没有突出显示该行。有了这个 if ( r[6] === "RECEIVED") row.style.backgroundColor = "green";或者用这个 if (l7Column.innerHTML === "RECEIVED") row.style.backgroundColor = "green";

标签: javascript google-apps-script search


【解决方案1】:

我认为您的脚本中没有使用row。而且,在这种情况下,下面的修改怎么样?

发件人:

if (l7Column.innerHTML = r[6] === "RECEIVED") row.style.backgroundColor = "green";

收件人:

if (r[6] === "RECEIVED") tr.querySelector("tr").style.backgroundColor = "green";

补充:

关于您的以下新问题,

你的剧本比你厉害:)。它起作用了,我有另一个查询,状态不仅包含单词 RECIEVED,而且有时它可能还有其他单词,例如 RECIEVED TODAY 或 RECIEVED YESTERDAY,在这种情况下脚本应该如何更改?

r[6]RECIEVED TODAYRECIEVED YESTERDAY 时,您希望将背景颜色设置为绿色。既然如此,那么下面的修改呢?

发件人:

if (l7Column.innerHTML = r[6] === "RECEIVED") row.style.backgroundColor = "green";

收件人:

if (["RECIEVED TODAY", "RECIEVED YESTERDAY"].includes(r[6])) tr.querySelector("tr").style.backgroundColor = "green";

或者,当r[6]包含RECIEVED时,你想设置背景色,下面的修改如何?

收件人:

if (r[6].toString().includes("RECIEVED")) tr.querySelector("tr").style.backgroundColor = "green";

注意:

  • 当我看到您的问题时,您使用的是RECEIVED。但是在您的回复中,您使用RECIEVED。我认为RECEIVED 的拼写与RECIEVED 不同。在此附加修改中,使用了RECIEVED。请注意这一点。

【讨论】:

  • 你的剧本比你厉害:)。它起作用了,我有另一个查询,状态不仅包含单词 RECIEVED,而且有时它可能还有其他单词,例如 RECIEVED TODAY 或 RECIEVED YESTERDAY,在这种情况下脚本应该如何更改?
  • 任何包含 RECIEVED 的东西都应该突出显示,
  • @James Anderson 感谢您的回复。我很高兴你的问题得到了解决。关于您的新问题,我添加了修改后的脚本。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
  • @Tanaike 非常感谢。我一直在努力解决这几天。你绝对是个天才。愿上帝保佑你。 :)
  • @James Anderson 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
猜你喜欢
  • 2011-09-19
  • 2021-03-07
  • 2023-04-01
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多