css 如何停止Javascript代码自动将hsl转换为rgb

bjg7j2ky  于 2022-11-19  发布在  Java
关注(0)|答案(1)|浏览(137)

我有这样的代码,我给一个对象分配了一个颜色,然后我使用一个条件来检查这个项目是否已经被选中。但是这个条件不起作用,因为javascript(或浏览器)将hsl转换为rgb,这阻止了任何匹配的发生。我想知道是否有一种方法可以阻止JS(或浏览器)的这种行为,如果没有,为什么会发生这种情况?

function selecionarNota() {

    if (this.style.backgroundColor == 'hsl(25, 97%, 53%)') { 
        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

    } else {

        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

        this.style.backgroundColor = 'hsl(25, 97%, 53%)';
        this.style.color = 'white';

    }
}

我确实意识到我可以通过在代码中使用rgb来解决这个问题。但我真的很想了解为什么会发生这种情况。

11dmarpk

11dmarpk1#

这是因为它是浏览器的标准。
我建议创建带有这些颜色的css类,并在javascript中应用这些类,然后在条件语句中使用element.classList.contains(class)

相关问题