2010-10-04 4 views
1

J'essaie de trouver la liste des éléments qui correspondent au format d'id spécifié.
J'aime Je veux sélectionner tous les tags avec le nom de classe "requis" ou sélectionnez toutes les étiquettes avec id comme myObj [n'importe quel caractère] par exemple. myObj1, myObj2, myObj3, myObja etccomment sélectionner des éléments avec un identifiant spécifique sans utiliser les frameworks javascript?

+0

fyi. Les ID doivent être uniques et peuvent être récupérés en utilisant 'document.getElementById'. Donc "tous les tags avec id" ne devraient jamais exister .. – CharlesLeaf

+2

@Charles oui c'est vrai, mais il cherche tous les éléments avec une valeur "id" du même * pattern *, pas exactement la même chaîne. – Pointy

Répondre

2

Vous devez le faire par itérer sur tous les éléments du DOM:

var allElements = document.getElementsByTagName('*'); 
for (var i = 0; i < allElements.length; ++i) { 
    var element = allElements[i]; 
    if (/\brequired\b/.test(element.className) || /^myObj?/.test(element.id)) { 
    // whatever 
    } 
} 

Certaines personnes Smarty sera probablement en mesure d'expliquer comment faire avec sélecteurs de chemin; Je ne suis pas très familier avec cela et aussi cela ne fonctionnera pas sur les vieilles versions d'IE de toute façon.

+0

thnx pointy votre idée m'a aidé. – KoolKabin

1

Get elements by class name:

document.getElementsByClassName('foo bar baz'); 

Voir Pointy's answer pour sélectionner par préfixe d'ID. Cela dit, vous êtes vraiment mieux vaut utiliser une bibliothèque pour faire toutes ces choses désagréables pour vous.

+1

Il est vrai qu'un framework est une bonne idée ici - au pire, il devra faire le même type d'itération sur tout le DOM, mais un bon framework pourra utiliser des techniques plus sophistiquées dans les navigateurs qui les supportent. – Pointy

+0

@Pointy - ** oui. ** Pour l'OP - par exemple, de nombreuses bibliothèques (comme jQuery, YUI, etc.) utiliseront des méthodes d'API de sélection de navigateur non standard, si elles sont disponibles, plus efficaces, telles que Gecko's. [querySelectorAll] (https://developer.mozilla.org/En/DOM/Element.querySelectorAll). –

Questions connexes