hay navegadores que incluyen una funcion
no estandar parecido a getElementsByTagName pero para obtener los elementos por clases,
getElementsByClassName. para compensar los navegadores que no tienen dicha funcion puedes crear tu propia version. de esta manera puedes obtener los elementos independientemente del tipo de elemento: P, DIV, INPUT, etc. a continuacion el codigo para los navegadores que no tienen dicha funcion. por supuesto, tienes que primero cargar el codigo antes de cualquier otro para evitar problemas:
Código:
if(!document.getElementsByClassName){
document.getElementsByClassName = function(className){
var regex = new RegExp(className);
var array = [];
var element = arguments[1] || document.documentElement;
for(var elem = element.firstChild; elem != null; elem = elem.nextSibling){
if(elem.nodeType != 1)continue;
if(regex.test(elem.className)) array.push(elem);
if(elem.hasChildNodes()) array = array.concat(arguments.callee(className, elem));
}
return array;
}}
esta funcion es parecida pero no exactamente igual a
document.getElementsByClassName. difiere en que en lugar de devolver una coleccion de elementos devuelve un array. tienes que tener muy en cuenta ese detalle porque hay ciertas cosas que no se pueden lograr. por ejemplo, un cambio en el documento, como remover los elementos del documento, altera la coleccion de elementos pero en un array no se puede apreciar dicha alteracion. sencillamente porque un array no es lo mismo que una coleccion.