"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo seleccionar elementos por atributos cuando QuerySelectorall no está disponible?

¿Cómo seleccionar elementos por atributos cuando QuerySelectorall no está disponible?

Publicado el 2025-04-19
Navegar:637

How to Select Elements by Attribute When querySelectorAll is Missing?

cómo recuperar elementos por atributo Cuando QuerySelectorall no está disponible

A pesar de su prevalencia, el método QuerySectorall puede no ser universalmente accesible. Por ejemplo, los navegadores más antiguos como IE7 carecen de esta funcionalidad. Sin embargo, es posible lograr resultados similares utilizando un enfoque nativo que garantice la compatibilidad con IE7.

Considere el siguiente escenario:

típicamente, se utilizaría atributos:

document.querySelectorAll('[data-foo]')

Sin embargo, en ausencia de QuerySelectorAll, se requiere una solución alternativa.

para alcanzar la misma funcionalidad de forma natativa, una función de JavaScript se puede construir:

function getAllElementsWithAttribute(attribute) {
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i  

Esta función atraviesa todo el documento, recuperando todos los elementos con un atributo específico. Invocándolo:

getAllElementsWithAttribute('data-foo');

se puede recuperar efectivamente elementos con el atributo "data-foo". Esta solución es completa y compatible con IE7, lo que permite el acceso a elementos por atributo incluso en navegadores que carecen de QuerySelectorAll.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3