【问题标题】:Changing background color for MANY strings based on whether they include a certain word?根据是否包含某个单词来更改许多字符串的背景颜色?
【发布时间】:2020-09-23 17:13:54
【问题描述】:

我正在尝试检查一堆字符串是否包含某个单词。如果该类的单个成员具有指定的单词(“不太可能”),那么我将背景颜色更改为绿色。如果该类的单个成员没有,则背景颜色为红色。所以最终的结果将是一群具有绿色背景的班级成员和其他具有红色背景的成员。

我的代码不起作用。

这是我尝试过的。

function colorCoding() {
    var str = document.getElementsByClassName("colorString").innerHTML;
    var n = str.includes("unlikely");
    if (n==true) {
      document.getElementById("colorString").style.backgroundColor = "green";
    } else {
      document.getElementById("colorString").style.backgroundColor = "red";
    }
}

背景颜色完全没有变化。

我已经尝试为每个单独的 ID 执行此操作——并且成功了——但这将花费我很长时间才能遍历类的每个成员并根据他们的单独 ID 创建一个函数。有没有办法在课堂上做到这一点?或者没有类,但仍然对整个集合使用一个函数?

感谢您的帮助!

【问题讨论】:

  • 尝试使用document.querySelector而不是document.getElementsByClassName()

标签: javascript html jquery css


【解决方案1】:

问题在于document.getElementsByClassName("colorString").innerHTML。您必须包含索引。应该是document.getElementsByClassName("colorString")[0].innerHTML

document.getElementsByClassName() 返回具有该类名的元素数组。

for循环:-

 var i;

 var str = document.getElementsByClassName("colorString");
 for (i = 0; i < str.length; i++) {

    if(str[i].innerHTML.includes("unlikely")) { 
      str[i].style.backgroundColor = "green";
  } else {
  str[i].style.backgroundColor = "red";
}

 }

【讨论】:

  • 但是我不是必须为班级的每个成员都这样做吗?有什么方法可以检查一组字符串是否包含某个单词?
  • 你可以使用for循环
  • 哦,我明白了。我对 for 循环不是很熟悉。我会自己研究一下,非常感谢,但你能指出我将如何编写该代码的方向吗?
  • 更新了解决方案。 w3schols 和 Mozilla 开发人员有一些很好的学习资源。
  • 非常感谢,这很有帮助。
猜你喜欢
  • 2020-06-14
  • 2019-05-22
  • 1970-01-01
  • 2023-03-14
  • 2015-07-07
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 2022-10-14
相关资源
最近更新 更多