动态生成的选择列表未在IE< 9中填充

时间:2013-05-27 18:43:11

标签: ajax internet-explorer-8 selectlist

我有一个由AJAX调用动态填充的选择下拉列表。它在IE 8及以下版本的所有浏览器中都能正常工作。浏览器不会在标记内呈现元素。以下是列表的设置:

for (var Id in Options.items) {
                var option = document.createElement('option');
                option.value = Id;
                option.textContent = Options.items[Id];
                if (Options.defaultId === Id) {
                    option.setAttribute('selected', 'selected');
                }
                select.appendChild(option);
            }

            return select.outerHTML;

这些代码是否与旧版本的IE不兼容?搜索结果提到“setAttribute”会导致问题,所以我确实尝试将该行切换为'option.Selected =“Selected”',无效。我有一种感觉我的问题在于如何使用appendChild将选项附加到列表或返回外部HTML,但不知道从哪里开始。这些往往会产生IE的问题吗?非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

您使用的是.textContent,IE8及以下版本不支持。将其更改为innerHTML,它应该可以工作。

请参阅.textContent

for (var Id in Options.items) {
    var option = document.createElement('option');
    option.value = Id;
    option.innerHTML = Options.items[Id]; //<--here

    if (Options.defaultId === Id) {

        option.setAttribute('selected', 'selected');
    }
    select.appendChild(option);
}

Demo

答案 1 :(得分:0)

根据您的解释,我理解您的问题是浏览器没有突出显示(选择)正确的选项...如果这是正确的,而不是:

option.setAttribute('selected', 'selected');

使用:

select.value = Id;

据我所知,它适用于所有浏览器。