domingo, agosto 19, 2007

getElementsByName, una más a la lista

En algún momento tenía que suceder, un extracto de 10 elementos se iba a quedar corto para la pequeña biblioteca de funciones javascript. Aquí les va la siguiente función, en realidad, claro está, dependiendo de dónde se le desee aplicar y cómo, les puede resultar de bastante utilidad.


getElementsByName

Esta función regresa una colección (array) de todos los elementos que tengan un atributo name igual a la cadena que recibe como parámetro. Esta se ha de utilizar tal y como se haría con getElementsByClass, a diferencia que esta recibe solo un parámetro: el nombre de los objetos a buscar.

Ojo!... no funciona en browsers que no sean Mozilla, para variar (punto para Firefox)... He aquí el código a utilizar en IE para implementar esta funcionalidad:

function getElementsByName_iefix(tag, name) {
var elem = document.getElementsByTagName(tag);
var arr = new Array();
for(i = 0,iarr = 0; i < elem.length; i++) {
att = elem[i].getAttribute("name");
if(att == name) {
arr[iarr] = elem[i];
iarr++;
}
}
return arr;
}
Como parte de la investigación para dar con el código (proporcionado por el Supervisor de Desarollo de nuestra unidad de trabajo) di con este sitio muy útil en donde se hace una comparación entre los principales navegadores de la actualidad acerca de la compatibilidad de las funciones descritas en el W3C DOM, realizado por Peter-Paul Koch.




Fuentes consultadas:

+ http://www.quirksmode.org/dom/w3c_core.html
+ http://www.quirksmode.org/dom/tests/named.html

No hay comentarios.: