我有一个javascript函数,它接受JSP返回的xml字符串并解析它,并且应该将它写入页面。代码是:
function renderResults() {
alert("renderResults()");
element = document.getElementById("results").innerHTML;
var xmlString = '<%=session.getAttribute("directoryInfo")%>';
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString, "text/xml");
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(xmlString);
}
var x = xmlDoc.getElementsByTagName("person");
for (var i = 0; i < x.length; i++) {
console.log(x[i].getElementsByTagName("firstname")[0].childNodes[0].nodeValue);
console.log(x[i].getElementsByTagName("lastname")[0].childNodes[0].nodeValue);
element += '<p>' + x[i].getElementsByTagName("firstname")[0].childNodes[0].nodeValue +
" " + x[i].getElementsByTagName("lastname")[0].childNodes[0].nodeValue + '</p>';
console.log(element);
}
}
出于某种原因,它不会写。提交表单后调用renderResults()
函数:
var formData = {
"field1": field1,
"oper1": oper1,
"value1": value1,
"field2": field2,
"oper2": oper2,
"value2": value2,
"field3": field3,
"oper3": oper3,
"value3": value3
};
jQuery.post("<%=request.getRequestURL().toString()%>getInfo.jsp", formData, function(response) {
alertHere(response)
});
renderResults();
我知道renderResults函数有效,因为我的所有console.log都输出了正确的信息。
最后 Console.log(element)
输出应该写入页面的正确html。
有什么建议吗?我对javascript相对较新,所以我试图弄清楚事情是如何以及何时呈现的。
我不确定这与我的问题有什么关系。
答案 0 :(得分:3)
element = document.getElementById("results").innerHTML;
将字符串从innerHTML
复制到element
。
它不会创建参考。
更新element
的值不会更新innerHTML
为此,您必须将新值重新指定为至innerHTML
。