如何在JavaScript中使用条件语句包含多个颜色样式

3

我正在尝试优化一个针对多个 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, 0113, 147, 255。最简单和高效的方法是什么?


1
你的意思是想对 rgb(215, 218, 220) 目标样式所做的相同操作,也对 255, 69, 0113, 147, 255 进行操作吗? - Ashvin777
是的,我想将这些颜色的所有三个实例替换为“23, 23, 24”。 - Lichtung
如果您能够修改应用此脚本的页面,最好使用CSS“变量”(自定义属性)。如果它更像是一个Web扩展程序,那么我的评论当然就无效了 :) - FelipeAls
我正在尝试使用用户脚本绕过Reddit的无意义类名。不幸的是,这似乎是唯一可行的方法。 - Lichtung
1个回答

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)";
        }
    });


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接