El problema es que no te va a funcionar por dos cosas:
- getElementsByTagName espera un string "span" no span
- y getElementsByTagName devuelve un nodeList (elements es un nodeList), que no tiene propiedad style.
La mejor forma de optimizar ese código de forma rápida es:
Código:
var changes = function() {
for (var i = 0, elements = document.getElementsByTagName("span"), len = document.getElementsByTagName("span").length; i < len; i++) {
elements[i].style.backgroundColor = "#666";
elements[i].style.fontSize = "20px";
elements[i].style.border = "1px solid #000";
}
}
De esta forma i, elements y len se inicializan en un único bloque var, en lugar de usar tres bloques var. Esto es más rápido.
Se define len fuera a modo constante en lugar de evaluar document.getElementsByTagName("span").length en cada vuelta del bucle.