我有一個javascript函數,它需要一個由JSP返回的xml字符串並解析它,並且應該將其寫入頁面。代碼是:innerHTML不寫入頁面
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.logs都輸出正確的信息。
Console.log(element)
最後輸出應該寫入頁面的正確html。
有什麼建議嗎?我相對較新的JavaScript,所以我想弄清楚事情是如何以及何時呈現的。
我不確定這是否與我的問題有關。
您不會在任何地方返回「innerHTML」。僅供參考:爲變量或屬性指定新值**從不**改變其他變量或屬性的值(例外:全局範圍,'帶'和像getter這樣的奇特事物)。 – 2014-09-02 15:01:59
同樣在這裏我沒有看到它 – 2014-09-02 15:02:32