2011-03-11 6 views
0

J'ai encore une question prototype; regardez ce HTML:Sélection d'ID multiples avec PrototypeJS

<select id="dropdown_1><option>...</option></select> 
... 
<select id="dropdown_n"><option>...</option></select> 

Quand je juste avoir un id="dropdown" et faire:

temp_node = $('dropdown').firstDescendant(); 
default_option = temp_node.innerHTML; 

Il fonctionnera!

Comment puis-je le résoudre, de la même manière, en utilisant de nombreux ID ressemblant à la mienne?

$$('[id^="dropdown"]').firstDescendant(); ne résout pas non plus mon problème!

Répondre

2

Comme dans votre previous question vous avez négligé que $$ retourne un tableau, pas un élément.

Si vous êtes uniquement intéressé à obtenir l'option d'un seul sélectionnez alors vous pouvez le faire comme ceci:

$$('[id^="dropdown"]')[0].firstDescendant(); 

Sinon, si vous voulez que la première option de chaque sélection correspondant à faire:

var options = $$('select[id^="dropdown"] > option:first-child'); 
0

Ajoutez une classe "dropdown" à chaque élément et sélectionnez-le.

BTW votre HTML a des erreurs de syntaxe.

+0

Merci pour votre réponse peut-être c'est du travail !! mais dans mon cas, je dois appeler chaque sélection individuellement! le problème est de savoir comment les select sont générés !! je ne peux pas le changer !! ils viennent déjà avec un identifiant '" dropdown_ "+ number'; – trouble

+0

@trouble: Changez-le là où vous l'avez généré. –

0

Savez-vous combien de bas de baisse que vous avez, si vous pouviez donc faire quelque chose le long des lignes de:

for(var i=1; i<=MAX_DROPDOWNS; i++) { 
    var dropdown = $('dropdown_' + i); 
    // Do whatever you need to do with each drop down 
} 

Si vous ne savez pas combien je pense que quelque chose comme cela fonctionnera:

var i=1; 
while(var dropdown=$('dropdown_' + i)) { 
    // Do whatever you need to do with the drop down. 
} 
+0

je l'essaie mais ne travaille pas pour moi! Je vous remercie! – trouble

+0

J'ai besoin d'interagir individuellement avec chaque liste déroulante! c'est dans une fonction d'appel! J'ai besoin de quelque chose comme ceci: '$ ('select [id^=" dropdown _ "]')' pour obtenir le premier enfant (_option_). – trouble