Nuestro grupo de expertos luego de días de investigación y de recopilar de datos, hemos dado con la solución, esperamos que te resulte útil para tu trabajo.
los Element
método getElementsByClassName()
devuelve una vida HTMLCollection
que contiene todos los elementos descendientes que tienen el nombre o nombres de clase especificados.
El método getElementsByClassName()
sobre el Document
La interfaz funciona esencialmente de la misma manera, excepto que actúa en todo el documento, comenzando en la raíz del documento.
Sintaxis
var elements = element.getElementsByClassName(names);
Parámetros
names
- A
DOMString
que contiene uno o más nombres de clase para hacer coincidir, separados por espacios en blanco.
Valor devuelto
Un HTMLCollection
proporcionando una lista actualizada en vivo de cada elemento que es miembro de cada clase en names
.
Notas de uso
Como siempre, la colección devuelta es En Vivo, lo que significa que siempre refleja el estado actual del árbol DOM enraizado en el elemento en el que se llamó a la función. Como nuevos elementos que combinan names
se agregan al subárbol, aparecen inmediatamente en la colección. Del mismo modo, si un elemento existente que no coincide names
tiene su conjunto de clases ajustado para que coincida, aparece inmediatamente en la colección.
Lo contrario también es true; como los elementos ya no coinciden con el conjunto de nombres, se eliminan inmediatamente de la colección.
En en modo capricho, los nombres de las clases se comparan sin distinción entre mayúsculas y minúsculas. De lo contrario, distinguen entre mayúsculas y minúsculas.
Ejemplos de
Coincidir con una sola clase
Para buscar elementos que incluyan entre sus clases una sola clase especificada, solo proporcionamos ese nombre de clase al llamar getElementsByClassName()
:
element.getElementsByClassName('test');
Este ejemplo busca todos los elementos que tienen una clase de test
, que también son descendientes del elemento que tiene la id
de main
:
document.getElementById('main').getElementsByClassName('test');
Coincidencia de varias clases
Para encontrar elementos cuyas listas de clases incluyan tanto red
y test
clases:
element.getElementsByClassName('red test');
Examinando los resultados
Puede utilizar el item()
método en el devuelto HTMLCollection
o estándar array sintaxis para examinar elementos individuales de la colección. Sin embargo el siguiente código no funcionará como era de esperar porque "matches"
cambiará tan pronto como "colorbox"
se elimina la clase.
var matches = element.getElementsByClassName('colorbox');for(var i=0; i<matches.length; i++) matches[i].classList.remove('colorbox'); matches.item(i).classList.add('hueframe');
En su lugar, use otro método, como:
var matches = element.getElementsByClassName('colorbox');while(matches.length >0) matches.item(0).classList.add('hueframe'); matches[0].classList.remove('colorbox');
Este código encuentra elementos descendientes con el "colorbox"
clase, agrega la clase "hueframe"
, llamando item(0),
luego quita "colorbox"
(utilizando array notación). Otro elemento (si queda alguno) se convertirá en item(0)
.
Filtrar los resultados usando array métodos
También podemos utilizar métodos de Array.prototype
en cualquier HTMLCollection
pasando el HTMLCollection
como el método this
valor. Aquí encontraremos todo
test
:
var testElements = document.getElementsByClassName('test');var testDivs =Array.prototype.filter.call(testElements,function(testElement)return testElement.nodeName ==='DIV';);
Especificaciones
Especificación | Estado | Comentario |
---|---|---|
DOM La definición de ‘Element.getElementsByClassName ()’ en esa especificación. |
Estándar de vida | Definición inicial |
Compatibilidad del navegador
Escritorio | Móvil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Cromo | Borde | Firefox | explorador de Internet | Ópera | Safari | WebView Android | Chrome Android | Firefox para Android | Opera Android | Safari en IOS | Internet de Samsung | |
getElementsByClassName |
1 | 1612-16 Solo compatible con HTMLElement , no todo Element objetos, como SVGElement . |
3Antes de Firefox 19, este método devolvía un NodeList ; luego se cambió para reflejar el cambio en la especificación. |
9Solo compatible con HTMLElement , no todo Element objetos, como SVGElement . |
9.5 | 6 | 1 | 18 | 4 | 10.1 | 6 | 1.0 |
Valoraciones y reseñas
Eres capaz de asentar nuestra investigación exponiendo un comentario y dejando una puntuación te damos la bienvenida.