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

Ajax 动态生成的选择列表未在IE中填充<;9,ajax,internet-explorer-8,selectlist,Ajax,Internet Explorer 8,Selectlist,我有一个select下拉列表,由AJAX调用动态填充。除IE8及以下版本外,它在所有浏览器中都能正常工作。浏览器未呈现标记中的元素。以下是列表的设置: for (var Id in Options.items) { var option = document.createElement('option'); option.value = Id; option.textContent = Options

我有一个select下拉列表,由AJAX调用动态填充。除IE8及以下版本外,它在所有浏览器中都能正常工作。浏览器未呈现标记中的元素。以下是列表的设置:

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出现问题?非常感谢您的帮助。

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

option.setAttribute('selected', 'selected');
使用:


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

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

for(Options.items中的变量Id){
var option=document.createElement('option');
option.value=Id;

option.innerHTML=Options.items[Id];//谢谢您的回复,但我的实际问题是浏览器没有呈现标记中的元素。
select.value = Id;
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);
}