0

我有一个由 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 出现问题?非常感谢任何帮助,谢谢。

4

2 回答 2

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);
}

演示

于 2013-05-27T22:46:46.053 回答
0

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

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

利用:

select.value = Id;

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

于 2013-05-27T22:31:35.373 回答