我正在使用ajax调用为我的下拉列表并将其分配给html,对于mozilla和chrome工作正常但是对于IE它显示一个空白的下拉列表
var xmlhttp;
var strURL = "selectedu.php?selectward="+selectward;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText=="NOER")
{
alert("Select ER Type");
}
else
{
document.getElementById(id).innerHTML=xmlhttp.responseText;
}
}
}
xmlhttp.open("GET",strURL,true);
xmlhttp.send();
答案 0 :(得分:8)
在尝试添加或更新表单元素时,innerHTML
属性在IE中存在一些问题,解决方法是在附加到DOM之前创建div并在其上设置innerHtml属性:
var newdiv = document.createElement("div");
newdiv.innerHTML = xmlhttp.responseText;
var container = document.getElementById(id);
container.appendChild(newdiv);
答案 1 :(得分:4)
如果文档是XHTML,IE将不允许直接设置innerHTML
属性。您需要将responseText
解析为DOM元素,并用这些元素替换现有元素的内容。
答案 2 :(得分:0)
也许你可以使用append()
。
例如:
$get('yourTargetObjectId').append('<p>this test to add</p>');
append()
在所选元素的末尾插入内容,并使用prepend()
插入所选元素的开头。