Sans utiliser de framework open source (jQuery, etc.) :), en JavaScript, quel est le moyen le plus efficace de rechercher des attributs dans les contrôles. (Tous les anciens/nouveaux navigateurs)Attribut de recherche en JavaScript
C'est le modèle que je suis en quelque sorte. Yat-il un meilleur moyen ou une meilleure méthode getElementByAttribute()
? Merci!
par exemple
<input type="button" id="b1" value="Continue" a1="something" />
<input type="text" id="t1" a1="something1" />
<script>
var attrToFind = "something;something1";
var elems = document.all ? document.all : document.getElementByTagName("*");
//assume elems work always
for(var i = 0 ; i < elems.length; i++)
{
var att = elems[i].getAttribute("a1");
if (typeof att == "string")
{
if (att.indexOf(attrToFind) > -1)
... //search which attr you find, create array, save value, etc.
}
}
</script>
Je pense que vous avez déjà à peu près la bonne idée ... Votre test est faible - il va correspondre à "quelque chose" si la valeur est "somethingelse" - mais c'est assez facile à corriger. Le plus gros problème est simplement que ce sera assez lent pour les documents volumineux, car il doit traverser le DOM entier à chaque fois. C'est pourquoi les moteurs de sélecteurs tels que jQuery/Sizzle encouragent des sélecteurs plus spécifiques: 'input [a1 = something]' n'a besoin que de tester les éléments d'entrée. – Shog9