Tengo una condición if simple que verifica el color de un elemento...
function changeBackgroundColor(element) { if (element.target.style.color == "#1abc9c"){ // Do nothing } else { // Whatever }Pero no está funcionando. Si uso nombres comunes como "Amarillo, verde, etc.", funciona. ¿Algun consejo?
style.color proporciona el nombre de color directo o el valor rgb. No da código hexadecimal. Entonces, para su caso, primero debe cambiar su código hexadecimal a rgb, luego compararlo con style.color Entonces, lo que puede hacer es crear una función de utilidad
function getRgbFromHex(hexColorCode){ const hexCode = hexColorCode.startsWith('#') ? hexColorCode.substr(1) : hexColorCode; const hexR = hexCode.substring(0,2); const hexG = hexCode.substring(2,4); const hexB = hexCode.substring(4,6); return `rgb(${parseInt(hexR, 16)},${parseInt(hexG, 16)},${parseInt(hexB, 16)})` }y luego puede cambiar su condición if a ACTUALIZAR Eliminación de espacios de style.color
if (element.target.style.color.replace(/\s/g,'') == getRgbFromHex("#1abc9c"))document.getElementById('main').style.color devuelve un valor RGB, no un valor HEX.
Ejemplo:
if (document.getElementById('main').style.color == 'rgb(26, 188, 156)') { console.log("Colour is set") } else { } <div id="main" style="color: #1abc9c"> Hello, world! </div> <script src="test.js"></script>