392 votes

Trouver un élément dans DOM en fonction d'une valeur d'attribut

Pouvez-vous me dire s'il existe une API DOM qui recherche un élément avec un nom d'attribut et une valeur d'attribut donnés :

Quelque chose comme :

doc.findElementByAttribute("myAttribute", "aValue");

20voto

tazo todua Points 495
FindByAttributeValue("Attribute-Name", "Attribute-Value");   

p.s. si vous connaissez exactement le type d'élément, vous ajoutez le 3ème paramètre (i.e.div, a, p ...etc...) :

FindByAttributeValue("Attribute-Name", "Attribute-Value", "div");   

mais dans un premier temps, définissez cette fonction :

function FindByAttributeValue(attribute, value, element_type)    {
  element_type = element_type || "*";
  var All = document.getElementsByTagName(element_type);
  for (var i = 0; i < All.length; i++)       {
    if (All[i].getAttribute(attribute) == value) { return All[i]; }
  }
}

p.s. mis à jour selon les recommandations des commentaires.

12voto

Daniel De León Points 2842

Utiliser des sélecteurs de requête, exemples :

document.querySelectorAll(' input[name], [id|=view], [class~=button] ')

input[name] Saisit les éléments avec name propriété.

[id|=view] Éléments dont l'identifiant commence par view-.

[class~=button] Éléments avec la classe button.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X