Modifiqué este código Javascript en funcionamiento configurando style.background como var "x" y ya no cambia. ¿Dónde está el problema?
<script> var myVar = setInterval(setColor, 300); function setColor() { /* This commented-out code works. var x = document.body; x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow"; */ var x = document.body.style.backgroundColor; // not working x = x == "yellow" ? "pink" : "yellow"; } </script>Su valor de asignación a la variable "x", no document.body.style.backgroundColor , no lo almacene en una variable.
<script> var myVar = setInterval(setColor, 300); function setColor() { var x = document.body.style.backgroundColor; document.body.style.backgroundColor = x == "yellow" ? "pink" : "yellow"; } </script>Eso es porque en el código original:
function setColor() { var x = document.body; x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow"; }x es una referencia de document.body, sin embargo, en su código, cuando lo hace:
x = x == "yellow" ? "pink" : "yellow";x ya no es igual a una referencia de document.body, ahora es una cadena, ya sea rosa o amarilla. Entonces, x no cambiará el html porque es solo una variable de cadena.
Si desea que el código funcione, debe agregar este código detrás de la declaración x.
document.body.style.backgroundColor = x