Maison > interface Web > js tutoriel > Comment sélectionner des éléments par attribut lorsque querySelectorAll est manquant ?

Comment sélectionner des éléments par attribut lorsque querySelectorAll est manquant ?

Patricia Arquette
Libérer: 2024-10-30 00:32:29
original
174 Les gens l'ont consulté

How to Select Elements by Attribute When querySelectorAll is Missing?

Comment récupérer des éléments par attribut lorsque querySelectorAll est indisponible

Malgré sa prévalence, la méthode querySelectorAll peut ne pas être universellement accessible. Par exemple, les navigateurs plus anciens comme IE7 ne disposent pas de cette fonctionnalité. Cependant, il est possible d'obtenir des résultats similaires en utilisant une approche native qui garantit la compatibilité avec IE7.

Considérez le scénario suivant :

<p data-foo="bar"></p>
Copier après la connexion

En général, on utiliserait querySelectorAll pour récupérer des éléments basés sur leurs attributs :

document.querySelectorAll('[data-foo]')
Copier après la connexion

Cependant, en l'absence de querySelectorAll, une solution alternative est requise.

Pour atteindre nativement la même fonctionnalité, une fonction JavaScript peut être construite :

function getAllElementsWithAttribute(attribute) {
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i < n; i++) {
    if (allElements[i].getAttribute(attribute) !== null) {
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}
Copier après la connexion

Cette fonction parcourt l'ensemble du document, récupérant tous les éléments avec un attribut spécifique. En l'invoquant :

getAllElementsWithAttribute('data-foo');
Copier après la connexion

on peut récupérer efficacement des éléments avec l'attribut "data-foo". Cette solution est à la fois complète et compatible avec IE7, permettant l'accès aux éléments par attribut même dans les navigateurs dépourvus de querySelectorAll.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal