2mdc
C/ Matias Turrión, 24, 1º
Madrid 28043
Tel: 91 759 00 24
Fax: 91 759 15 18

Blog: Desarrollo web

GetElementsByAttribute()

Publicado el: 30/12/2005 en: Desarrollo web | Añadir Comentario

Envía esta entrada a menéame Envía esta entrada a del.ici.ous Envía esta entrada a facebook Envía esta entrada a Twitter

No existe un método nativo de javascript que nos permita seleccionar de forma natural una serie de elementos con un atributo arbitrario predeterminado. El método getElementById() nos permite seleccionar un único elemento dado su ‘id’ o getElementsByTagName() nos devuelve un array con todos los elementos que compartan una misma etiqueta. Sin embargo, no existe un método del tipo getElementsByLang() que permita escoger, por ejemplo, todos los elementos con el atributo ‘lang’ igual a ‘es’.

La siguiente función, que resulta de una generalización de la función getElementByClass que podemos encontrar en http://www.dustindiaz.com/getelementsbyclass/, nos permite llenar ese hueco con la ventaja adicional de que podemos utilizar atributos no definidos en la especificación de HTML 4.0 (por qué esto puede ser de algun interés lo dejamos para otro artículo ;-) :

function getElementsByAttribute(atributo,nombre,nodo,etiqueta) {

//Este es el array que va almacenando los resultados
var resultados = new Array();

//Si los argumentos nodo y etiqueta están vacios les damos valores por defecto
if ( nodo == null )
nodo = document;
if ( etiqueta == null )
etiqueta = '*';

var elementos = nodo.getElementsByTagName(etiqueta);
var longitud = elementos.length;

//Construimos la expresión regular que deseamos encontrar
var cadena = new RegExp("(\b)"+nombre+"(\b)");

//Recorremos los elementos que deseamos parsear
for (i = 0, j = 0; i < longitud; i++) {
if ( cadena.test(elementos[i][atributo]) ) {
resultados[j] = elementos[i];
j++;
}
}

//devolvemos el array de resultados
return resultados;
}

Si deseáramos ahora escoger todos los elementos con el atributo lang="es" sólo necesitamos llamar a getElementsByAttribute('lang', 'es'). En este enlace podéis observar esta función en acción.

Valore de 1 a 5 este artículo
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 voto(s), media: 2.00 sobre 5)

Deja tu comentario



Tags HTML Permitidos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

2mdc.com Aplicaciones web C/ Matias Turrión, 24, 1º, Madrid 28043 Tel: 91 759 00 24 Fax: 91 759 15 18 Aplicaciones web