我是javascript的新手,我遇到了这个问题。我找到了解决方法,但我仍然想知道为什么以下不起作用:
var xmlhttp;
var par;
function(id, someparameters){
xmlhttp=GetXmlHttpObject(); // not shown here
xmlhttp.onreadystatechange=foo;
xmlhttp.open("POST",...
...
element = document.getElementById(id);
var par = element.parentNode;
par.removeChild(element);
}
function foo()
{
if(xmlhttp.readyState==4)
par.innerHTML = xmlhttp.responseText; // this doesn't get inserted!
}
我意识到,如果我只是省略par.removeChild(element)语句,那么事情就像我想的那样。但我不明白为什么删除一个孩子应该阻止我将innerHTML插入元素。 xmlhttp.responseText不仅仅是文本。它是其他HTML标签/元素(它是一个按钮)。但是按钮从不显示,并且检查源代码也确认par没有子元素......