innerHTML不写入页面

时间:2014-09-02 15:00:23

标签: javascript html

我有一个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相对较新,所以我试图弄清楚事情是如何以及何时呈现的。

我不确定这与我的问题有什么关系。

1 个答案:

答案 0 :(得分:3)

element = document.getElementById("results").innerHTML;字符串innerHTML复制到element

它不会创建参考。

更新element的值不会更新innerHTML

的值

为此,您必须将新值重新指定为innerHTML