JavaScript innerHTML 不适用于 IE?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8999998/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
JavaScript innerHTML is not working for IE?
提问by user1045373
I am using ajax call for to bring the list for my drop down and assign it to html,works fine for mozilla nad crome but for IE it displays a blank dropdown
我正在使用 ajax 调用为我的下拉列表带来列表并将其分配给 html,对于 mozilla nad crome 工作正常,但对于 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();
回答by Rich O'Kelly
The innerHTML
property has some problems in IE when trying to add or update form elements, the workaround is to create a div and set the innerHtml property on that before appending to the DOM:
innerHTML
当尝试添加或更新表单元素时,该属性在 IE 中存在一些问题,解决方法是在附加到 DOM 之前创建一个 div 并在其上设置 innerHtml 属性:
var newdiv = document.createElement("div");
newdiv.innerHTML = xmlhttp.responseText;
var container = document.getElementById(id);
container.appendChild(newdiv);
回答by detaylor
If the document is XHTML the IE will not allow the innerHTML
property to be set directly. You would need to parse the responseText
into DOM elements and replace the contents of the existing element with those elements.
如果文档是 XHTML,IE 将不允许innerHTML
直接设置该属性。您需要将 解析responseText
为 DOM 元素并用这些元素替换现有元素的内容。
回答by Fabricio León
Maybe you can use append()
.
Example:
也许你可以使用append()
. 例子:
$get('yourTargetObjectId').append('<p>this test to add</p>');
append()
inserts content at the end of the selected element and use prepend()
to insert at the beginning of the selected element.
append()
在所选元素的末尾插入内容并用于在所选元素prepend()
的开头插入。