Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2007, 20:25
frijolerou
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
indexOf v/s expresiones regulares

Que tal gentes:

Necesito hacer la siguiente consulta. Lo que estoy tratando de hacer (vía Javascript) es determinar si en el atributo CLASS de un elemento HTML se encuentra un determinado valor. Lo más lógico sería usar (elemento.className == "valor" ), pero eso no serviría si el atributo CLASS tiene más de un valor.

- Una alternativa sería usar expresiones regulares:

Código:
pattern = new RegExp("\b" + valor + "\b" );
result = pattern.test(elemento.className);
- Una segunda opción sería convertir el contenido del atributo CLASS en un Array, y luego recorrer el Array buscando si existe el valor buscado:

Código:
Array.prototype.indexOf = function(s) {
for (var x=0;x<this.length;x++){
if(this[x] == s)
return x;
}
return false;
}
arrClasses = els[i].className.split(' ' );
result = arrClasses.indexOf("valor" );

La duda que tengo es el rendimiento de c/u, especialemente cuando la busqueda se hace en varios elementos HTML simultáneamente. Ambas pruebas me reportan la misma velocidad, pero no sé con cual de los dos el browser necesitaría más recursos. ¿Alguna opinion?.
__________________
El conocimiento es libre: Movimiento por la Devolución