【发布时间】:2015-02-08 11:41:17
【问题描述】:
喂!我正在尝试使用 document.getElementById innerHTML 将 XMLHttpRequest 的结果放入 div 中,但没有成功。
在头上:
XMLHttpRequest is fine (I tried document.write and it show my results).
Here is my code :
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://www.mywebsite.com/my.php",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
for(var i=0; i < xmlDoc.getElementsByTagName("place").length; i++) {
name = xmlDoc.getElementsByTagName("name")[i].childNodes[0].nodeValue;
document.getElementById('name').innerHTML += name +"<br>";
}
在体内:
<div id="name"></div>
注意: my.php 生成 xml 文件并用 document.write(name + "br tag"); 替换行 document.getElementById...工作正常。
感谢提前提供帮助。
【问题讨论】:
-
你能发布你的 xml 响应吗?
-
您不应该在循环中不断地附加到
innerHTML(即附加到DOM)。在变量中构建 HTML 内容,最后一次性分配给innerHTML。 -
这里是创建的 xml 的一部分:-
- 500 palazzo dei pio -
谢谢 w3d 我不知道该怎么做。但我的目标是显示每条记录的图片、名称、地址,并用换行符 (br) 分隔每条新记录;
-
只是预感...在
name = xmlDoc.etc中使用除name以外的其他变量,例如。xmlName。您似乎在全球范围内引用name? (这是在哪里用var定义的?)如果您正在引用全局name,那么您可能会从DOM 中删除您的id="name"元素?!document.getElementById('name')是否返回有效元素?
标签: javascript xml-parsing innerhtml document.write