我正在尝试优化针对多种rgb颜色样式的脚本。看起来像这样:
var divs = document.querySelectorAll('div[style^="color"]');
[].forEach.call(divs, function(div) {
if(div.style.color.includes('rgb(215, 218, 220)')){
div.style.color="rgb(23, 23, 24)";
}
});
我想为目标样式rgb(215, 218, 220)
,255, 69, 0
和113, 147, 255
做同样的事情。如何最简单有效地实现这一目标?
答案 0 :(得分:3)
这可能效率不高,因为它会根据字符串匹配来读取和写入dom,但是您可以使用RegExp.prototype.test代替String.prototype.includes:
var divs = document.querySelectorAll('div[style^="color"]');
var regexp = /rgb\(215, 218, 220\)|rgb\(255, 69, 0\)|rgb\(113, 147, 255\)/;
[].forEach.call(divs, function(div) {
if(regexp.test(div.style.color)){
div.style.color="rgb(23, 23, 24)";
}
});