我需要一些JavaScript帮助。当我正在使用XML和JavaScript时,我遇到了很多问题。所以我想在我的程序中使用document.createElement("ul")
document.createElement("ul")
而不是var html = "<li>" + node.nodeName;
。因为我需要给出一个合适的样式,并且需要给一些事件附加。所以我需要一些帮助。我正在附加我正在使用的程序的实时小提琴。
function generate(node) {
if (node.nodeType != 1) return "";
var html = "<li>" + node.nodeName;
var htmlForChildNodes = "";
for (var i = 0; i < node.childNodes.length; i++) {
htmlForChildNodes += generate(node.childNodes[i]);
}
if (htmlForChildNodes) {
html += "<ul>" + htmlForChildNodes + "</ul>";
}
html += "</li>";
return html;
}
谢谢
答案 0 :(得分:0)
不确定您想要什么,但此示例使用createElement
:
function generate(node) {
if (node.nodeType != 1) return "";
var li = document.createElement('li');
var span = document.createElement('span');
span.innerHTML = node.nodeName;
span.addEventListener("click", function(event) {
event.target.parentNode.classList.toggle("selected");
});
li.appendChild(span);
var ul = document.createElement('ul');
for (var i = 0; i < node.childNodes.length; i++) {
var r = generate(node.childNodes[i]);
if(r!==""){
ul.appendChild(r);
}
}
li.appendChild(ul);
return li;
}
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(txt, "text/xml");
} else { // Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(txt);
}
var masterUL = document.createElement('ul');
masterUL.appendChild(generate(xmlDoc.documentElement));
document.body.appendChild(masterUL);