2010-10-18 22 views
0

Im face à un problème avec jQuery dans Internet Explorer 7 et 8:Internet Explorer ne sait pas comment ajouter des options tag à une sélection dans jQuery

Im Essayer d'ajouter une balise d'option à une sélection existante:

var s = document.getElementById("category"); 
s.options.add(select_option); 

Mais IE dit simplement: Object doesn't support this property or method et points s.options.add(select_option);

Quelqu'un a une idée?

+1

S'il vous plaît montrer plus de code –

+0

Avez-vous essayé jQuery? – Diego

+0

Etes-vous sûr' s' est en fait une référence à un élément '' 'Les éléments DOM ont toujours un" op attributs ". – Pointy

+2

@Diego: La fonction 'attr()' de jQuery est en fait mappée vers un nom de propriété lorsque cela est possible. Cela peut prêter à confusion, mais '$ (element) .attr ('options')' est l'équivalent de 'element.options'. –

1

Ce Soulution fonctionne bien sous IE8 - copie du forum MIcrosoft -

« Je suppose que vous avez déjà obtenu la réponse dont vous avez besoin, mais pour quelqu'un d'autre qui trouve ce poste lors de la recherche de ce problème (comme je l'ai fait), voici la solution qui a fonctionné pour moi. Tout ce qu'il a fallu était de définir les propriétés sur opt après l'avoir ajouté à la collection d'options. J'ai également trouvé que la page de MSDN sur la fonction add (pour la collection d'options) indique explicitement que pour IE, les propriétés doivent être définies après l'ajout de l'option, mais la plupart des exemples trouvés en ligne ne le font pas. Je pense que votre façon peut-être travaillé dans les anciennes versions de IE. »

var opt = document.createElement('option'); 
select.options.add(opt);  
opt.innerHTML = 'Foo'; 
opt.value = 'Bar';