Добавление элементов option с использованием .innerHTML в IE - PullRequest
5 голосов
/ 19 декабря 2011

У меня есть переменная txt, которая содержит мою HTML-строку, которую мне нужно установить для выпадающего списка.Код прекрасно работает во всех других браузерах, кроме IE.Базовый код показан ниже.

цикл while с еще большим кодом

document.getElementById('theSelector').innerHTML = txt;

, где 'theSelector' - идентификатор элемента select для моей формы

Так что, в основном, IE не работает и не генерирует мой список.Я опубликую свою веб-страницу ниже, если вы хотите посмотреть на источник и все, что я делаю.Если вы хотите увидеть, как сайт должен функционировать, просто запустите его в другом браузере, который не является т. Е.

http://1wux.com/Resume/signUp.html

Ответы [ 3 ]

4 голосов
/ 19 декабря 2011

Как уже упоминалось, это ошибка во всех версиях IE. Я бы использовал решение @ AdamRackis, но если вам нужно создать свой HTML со строкой, единственным выходом может быть использование outerHTML и включение вашего <select> в строку.

Демо: http://jsfiddle.net/ThinkingStiff/TWYUa/

HTML:

<select id="select"></select>

Сценарий:

var options = '<select id="select"><option>one</option><option>two</option></select>';
document.getElementById( 'select' ).outerHTML = options;
4 голосов
/ 19 декабря 2011

На основании вашего комментария о том, что он не генерирует ваш список, и комментария Джареда о том, что вы пытаетесь добавить опции, попробуйте что-то вроде этого:

var list = document.getElementById('theSelector');
var newOp = document.createElement("option");
newOp.text = "Txt";
newOp.value = "1";
list.options.add(newOp);

РЕДАКТИРОВАТЬ

Согласно комментарию Джареда, следующее может предложить вам некоторое преимущество в производительности:

list.options[list.options.length] = newOp;
0 голосов
/ 21 октября 2014

используйте Jquery

$('#theSelector').html(txt);

...