2012-04-29 5 views
5

¿Cómo selecciono todos los elementos usando el mismo nombre de clase en javascript. Sé que puedo hacerlo usando document.getElementsByClassName pero leí en alguna parte que no es un navegador cruzado, así que si es verdadero, ¿cuál es la forma apropiada de seleccionar elementos según el nombre de clase sin jQuery u otra biblioteca?Navegador cruzado Selección de elementos por nombre de clase

Gracias!

+2

Créanme cuando digo que no es la primera persona para hacer esta pregunta ... http://www.google.co.uk/search? q = seleccionar + por + clase + nombre + javascript – Matt

+1

@Raj dar [querySelectorAll()] (https://developer.mozilla.org/en/DOM/Document.querySelectorAll) una prueba, es mejor y más flexible que 'getElement ...() ' – Christoph

Respuesta

7

me encontré con este código:

if (!document.getElementsByClassName) { 
    document.getElementsByClassName = function(classname) { 
     var elArray = []; 
     var tmp = document.getElementsByTagName("*"); 
     var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)"); 
     for (var i = 0; i < tmp.length; i++) { 

      if (regex.test(tmp[i].className)) { 
       elArray.push(tmp[i]); 
      } 
     } 

     return elArray; 
    }; 
}​ 

Here

1

ver aquí:

Support for getElementsByClassName

recomiendo el uso de querySelector. Es más natural y está muy cerca de la sintaxis de jQuery, por lo tanto, es más común para la mayoría de las personas. También es bastante rápido y no es necesario distinguir entre clases, identificadores o lo que sea.

Si desea admitir IE < 7, necesita una cuña como gdoron.

+0

Esto también es muy agradable, gracias. –

Cuestiones relacionadas