2010-09-29 5 views
2
<select id="selectId"> 
<option>Please select product ...</option> 
</select> 

i essayer sur firefox et il fonctionneHTML - MOOTOOLS- Ajout d'une option à sélectionner dans IE6

$('selectId').innertHTML = '<option>Test test</option>' 

mais inclusifs, ça marche pas, comment ajouter une option par option de chaîne comme ci-dessus à savoir

+1

Etes-vous sûr que ce n'est pas une faute de frappe? $ ('selectId'). innertHTML = '' – lock

+0

oh, j'essaie avec innerHTML, même résultat, c'est à dire pas de travail ~. ~ – Chameron

Répondre

3

Utilisez la place Element classe:

new Element('option', { 
    text: 'test option' 
}).inject($('selectId'));​ 

Exemple: http://www.jsfiddle.net/EJH5b/

+0

+1. lire les docs ppl :) J'ajouterais 'value: nnn' à l'objet qui est passé. Vous pouvez également transmettre une propriété 'selected' comme vous l'attendez –

0

Si vous allez utiliser Mootools, alors vous devriez vraiment utiliser les méthodes Mootools plutôt que de basculer entre lui et Javascript vanilla. L'un des avantages de cela est que Mootools s'occupe déjà des incohérences du navigateur pour vous. Par conséquent, si vous ignorez ses méthodes, vous devrez en prendre soin vous-même.

Pour accéder aux propriétés d'un élément de la manière Mootools, vous pouvez utiliser les méthodes set et get sur n'importe quel élément. La fonction dollar ($) renvoie un élément afin que vous puissiez simplement définir la chaîne et y arriver.

//returns selectId's HTML 
var foo = $('selectId').get('html'); 

//Sets the HTML of selectId to <option>Test test</option> 
$('selectId').set('html', '<option>Test test</option>'); // 

Dans ce cas, il vous suffit d'utiliser set. Une chose que vous devez savoir est que cela n'ajoute pas une option à une boîte de sélection mais remplace à la place tout ce qui est dans la boîte de sélection avec une option. Par conséquent, si vous souhaitez l'utiliser pour ajouter plusieurs options à une zone de sélection, cela ne fonctionnera pas car vous réinitialisez le code HTML à chaque fois. Cela n'a pas beaucoup de sens d'avoir une boîte de sélection qui n'a qu'une seule option donc je suppose que vous essayez d'ajouter une option, plutôt que de tout remplacer par une option. Dans ce cas, procédez comme suit:

//get the current options selectId's options 
var options = $('selectId').get('html'); 

//Add your own option onto the end 
options = options + '<option>Test test</option>'; 

//Set the HTML of selectId to whatever is stored in options 
$('selectId').set('html', options); 
+0

J'ai essayé mais ne fonctionne pas avec ie, merci pour suggetsion – Chameron

+0

Dans ce cas, avez-vous essayé de créer une nouvelle boîte de sélection avec les bonnes options, retirez l'ancienne sélection puis en insérant le nouveau? –

Questions connexes