2011-11-05 10 views
2

J'ai passé du temps à essayer de trouver une solution de navigation élégante et multi-navigateur, mais je n'ai pas pu. J'essaie de créer dynamiquement une liste déroulante. Voici mon html:Créer une liste déroulante

... 
<span id="currencies"> 
</span> 
... 

Dans mon script, je suis en train de faire ce qui suit:

  • Créer un élément de sélection
  • Put, disons, 4 options en elle - 'AAA', 'BBB', 'CCC', et 'DDD'
  • Append l'élément de sélection pour $ ('# monnaies')

Je suppose que le code soit navigateur croix il devrait être écrit en utilisant jQuery. Quand je dis que je veux dire peut-être élégant en essayant d'éviter trop de balisage, par exemple, quelque chose comme ceci:

// THIS IS NOT A WORKING CODE 
$('#currencies').appendSelect().addOption('AAA', 'AAA').addOption('BBB', 'BBB')... 

Peut-être que quelqu'un a une astuce. Je vous remercie.

Répondre

1

je ferais sans doute comme ceci:

var $s = $('<select/>').appendTo($('#currencies')); 
$.each(['AAA','BBB','CCC','DDD'],function(i,text){ 
    $s.append($('<option/>',{value:text,html:text})); 
}); 
+0

Andy, merci, je pense que c'est un très bon code. Juste une question, pourquoi avez-vous mis le signe dollar devant le nom de variable, est-ce comme une convention jQuery ou quelque chose? – SBel

+0

@SBel Je dirais que c'est presque convention. Cela permet de distinguer rapidement jquery des variables régulières. – Andy

0

Vous devez faire une chaîne

var string1='<option>AAA</option><option>BBB</option>.........</option>'

Puis

$('#currencies').html(string1);

fera le travail pour vous

Questions connexes