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?.