JavaScript innerHTML не работает для IE?
Я использую 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();
3 ответов
на innerHTML
свойство имеет некоторые проблемы в IE при попытке добавить или обновить элементы формы, обходным путем является создание div и установить свойство innerHtml на это перед добавлением к DOM:
var newdiv = document.createElement("div");
newdiv.innerHTML = xmlhttp.responseText;
var container = document.getElementById(id);
container.appendChild(newdiv);
Если документ XHTML IE не позволит innerHTML
свойство должно быть установлено напрямую. Вам нужно будет разобрать responseText
в элементы DOM и замените содержимое существующего элемента этими элементами.
возможно, вы можете использовать append()
.
Пример:
$get('yourTargetObjectId').append('<p>this test to add</p>');
append()
вставляет содержимое в конец выбранного элемента и использует prepend()
вставить в начале выбранного элемента.