我可以使用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/