9

如何在 JavaScript 中将元素背景颜色设置为十六进制值?backgroundColor方法仅在 rgb 中设置。

square.style.backgroundColor = input_color; input_color是 #123456,但在源集中rgb(18, 52, 86)

4

4 回答 4

1

解决您的问题的更好方法是像这样设置背景颜色

square.style.backgroundColor = "rgb(12,34,56)";

否则我会使用Sheika的例子

于 2012-12-04T23:05:11.403 回答
1

如果要获取格式元素的颜色,rgb则可以将其转换rgbhex格式

function rgbToHex(col)
{
    if(col.charAt(0)=='r')
    {
        col=col.replace('rgb(','').replace(')','').split(',');
        var r=parseInt(col[0], 10).toString(16);
        var g=parseInt(col[1], 10).toString(16);
        var b=parseInt(col[2], 10).toString(16);
        r=r.length==1?'0'+r:r; g=g.length==1?'0'+g:g; b=b.length==1?'0'+b:b;
        var colHex='#'+r+g+b;
        return colHex;
    }
}

调用函数

var col=document.getElementById('myDiv').style.backgroundColor;
alert(rgbToHex(col)); // alerts hex value

这是一个例子

于 2012-12-04T22:52:13.890 回答
1

找到了一些应该工作的东西:

document.getElementById('square').attributes['style'].textContent='background-color:'+ input_color 
于 2020-04-28T15:42:53.723 回答
-3

如果需要十六进制,可以将其设置为字符串,例如“#123456”,也可以使用十六进制数字rgb (0x12, 0x34, 0x56)

也就是说,square.style.backgroundColor = '#123456'; 和 square.style.backgroundColor = 'rgb(18, 52, 86)'; 工作并具有完全相同的效果。

因此,您的问题的答案:如何将其设置为十六进制值,在您的问题中得到了回答:您可以将十六进制值放入字符串中并进行设置。

您的意思似乎是:如何检索十六进制值?您遇到的问题是由于样式在内部不是您设置的副本,因此无法保证将以何种格式返回。如果您真的需要您设置的字符串的副本在设置样式的同时将该字符串存储在变量中。然后检索该变量而不是读取样式属性。

于 2012-12-04T22:08:41.693 回答