"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment sélectionner les éléments par attributs lorsque QuerySelectorall n'est pas disponible?

Comment sélectionner les éléments par attributs lorsque QuerySelectorall n'est pas disponible?

Publié le 2025-04-19
Parcourir:665

How to Select Elements by Attribute When querySelectorAll is Missing?

Comment récupérer les éléments par attribut lorsque QuerySelectorall n'est pas disponible

Malgré sa prévalence, la méthode QuerySelectorall peut ne pas être universellement accessible. Par exemple, les navigateurs plus âgés comme IE7 manquent 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érer le scénario suivant:

attributs:

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

Cependant, en l'absence de QuerySelectorall, une solution alternative est requise. var matchingElements = []; var allelements = document.getElementsByTagName ('*'); for (var i = 0, n = allelements.length; i

Cette fonction traverse le document entier, récupérant tous les éléments avec un attribut spécifique. En l'invoquant:

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

on peut récupérer efficacement les é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 queySelectorall.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3