我正在尝试优化一个针对多种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
做同样的事情。如何才能最简单有效地完成?
这可能是低效的,因为它根据字符串匹配读取和写入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)";
}
});