我有一个由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的问题吗?非常感谢任何帮助,谢谢。
答案 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);
}
答案 1 :(得分:0)
根据您的解释,我理解您的问题是浏览器没有突出显示(选择)正确的选项...如果这是正确的,而不是:
option.setAttribute('selected', 'selected');
使用:
select.value = Id;
据我所知,它适用于所有浏览器。