Internet Explorer не знает, как добавить тег опций для выбора в jQuery - PullRequest
0 голосов
/ 18 октября 2010

У меня проблема с jQuery в Internet Explorer 7 и 8:

Im Пытается добавить тег опции к существующему выбору:

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

Но IE просто говорит: Object doesn't support this property or method и указывает на s.options.add(select_option);

У кого-нибудь есть идея?

Ответы [ 4 ]

6 голосов
/ 18 октября 2010

Предполагая, что элемент с идентификатором "category" фактически равен <select>, самый простой способ - следующий проверенный временем код для добавления опции в список выбора в любом браузере:

var s = document.getElementById("category");
s.options[s.options.length] = new Option("Option text", "optionValue");
2 голосов
/ 18 октября 2010

1001 * попробовать *

$('#category').append('<option value="foo" selected="selected">Foo</option>');

или

var options = $('#category').attr('options');
options[options.length] = new Option('Foo', 'foo', true, true);
1 голос
/ 08 мая 2013

Это решение работает нормально под IE8 - скопировано с форума MIcrosoft -

"Я полагаю, вы уже получили нужный ответ, но для всех, кто найдет этот пост при поиске этой проблемы (как я сделал)Вот решение, которое сработало для меня. Все, что потребовалось, это установить свойства opt ПОСЛЕ добавления его в коллекцию опций. Я также обнаружил, что на странице MSDN функции add (для коллекции опций) явно указано, что для IE свойствадолжен быть установлен после добавления опции, но большинство примеров, которые я нашел в Интернете, не делают это таким образом. Я думаю, ваш путь работал в более старых версиях IE. "

var opt = document.createElement('option');  
select.options.add(opt);       
opt.innerHTML = 'Foo';  
opt.value = 'Bar';  
0 голосов
/ 18 октября 2010

Должен ли add() вызываться не элемент select, а не набор опций?Т.е.:

s.add(select_option);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...