javascript - 高效查找多个字符串并设置其样式

标签 javascript html arrays

我可以使用indexOf()搜索并更改特定字符串的所有出现的样式,如下所示:

var links = [...document.body.getElementsByTagName("a")];

for (var i = 0; i < links.length; i++) {
  if (links[i]["href"].indexOf("dog") == -1) {
    continue;
  }
  links[i].style["color"] = "green";
}

但是我如何更改多个给定字符串的所有出现,即“dog”和“cat”?

我没想到它会起作用,但还是尝试了:

var links = [...document.body.getElementsByTagName("a")];
var pets = ["dog", "cat"];

for (var i = 0; i < links.length; i++) {
  if (links[i]["href"].indexOf(pets) == -1) {
    continue;
  }
  links[i].style["color"] = "green";
}

它不起作用。

最佳答案

使用一些:

if (!pets.some(pet => links[i].href.includes(pet))) {...}

或者使用正则表达式:

if (!(new RegExp(pets.join("|")).test(links[i].href))) {...}

关于javascript - 高效查找多个字符串并设置其样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137381/

相关文章:

javascript - 无法从 JavaScript 客户端访问 Thinktecture IdentityServer3 上的登录

JavaScript:在 plotly.js 图中的 plotly_click 事件中打开 ui.bootstrap 模式

html - 页脚不粘在底部

html - 如何将 SVG 图像(其路径具有负值)正确定位到 Google Map

javascript - for 循环中的 splice(),解决方案是什么?

javascript - 从reactjs的多级嵌套对象数组创建嵌套JSX元素

javascript - ng-repeat 中序列号的 $index 替代方案

jquery - 如何将水平滚动条定位在DIV的中心

c - 打印结构数组

python - 简单问题 : In numpy how do you make a multidimensional array of arrays?