У меня есть функция javascript, которая принимает строку xml, возвращаемую JSP, и анализирует ее и должна записать ее на страницу. Код: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' в любом месте. FYI: присвоение нового значения переменной или свойству ** никогда ** не изменяет значение другой переменной или свойства (исключения: глобальная область, 'с' и модные вещи, такие как геттеры). –
такой же здесь, я не вижу его нигде –