Ajax 动态生成的选择列表未在IE中填充<;9
我有一个select下拉列表,由AJAX调用动态填充。除IE8及以下版本外,它在所有浏览器中都能正常工作。浏览器未呈现标记中的元素。以下是列表的设置: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
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);
}