Tengo un JS de 1 línea en el pie de página y no puedo hacer que getElementsByClassName funcione para modificar los atributos de estilo. "Hello World" funciona, ¿entonces debe ser mi sintaxis?
El código del pie de página es este:
<script> var test = document.getElementsByClassName("elementor-widget-container"); test.style.background-color = 'white'; var widgets = document.getElementsByClassName("widgets_wrapper"); widgets.style.margin = "0px"; </script>document.getElementsByClassName devuelve una lista de nodos. Incluso si solo hay uno.
Entonces, lo que (probablemente) quieras hacer es:
var test = document.getElementsByClassName[0]En el futuro, intente, por ejemplo, ejecutar console.log(test) para ver con qué está trabajando, antes de escribir más código para manipular esa variable/elemento.
getElementsByClassName devuelve un objeto similar a una matriz, incluso si solo hay uno. Puedes probar:
var test = document.getElementsByClassName("elementor-widget-container")[0];o:
test[0].style.background-color = 'white';El problema es que la prueba es una matriz de Node, no solo de Node. Entonces, harás así:
<script> let tests = document.getElementsByClassName("elementor-widget-container"); tests.forEach( test => { test.style.background-color = 'white'; } ); let widgets = document.getElementsByClassName("widgets_wrapper"); widgets.forEach( widget => { widget.style.margin = "0px"; } ); </script>