我正在编写一个简单的JavaScript程序来检查HTML网站中的每个元素,并将子节点添加到标记标记类型的每个非文本节点:
这是我的代码:
window.onload = function() {
var body_elems = document.body.getElementsByTagName("*");
for (var i = 0; i < body_elems.length; i++) {
if (body_elems[i].nodeType != 3) {
var tag_name = body_elems[i].tagName;
var child = document.createElement("P");
var child_text = document.createTextNode(tag_name);
child.appendChild(child_text);
body_elems[i].appendChild(child);
body_elems[i].firstChild.className = "hoverNode";
}
}
}
由于某种原因,行var child = document.createElement("P")
导致页面永不加载;如果我注释掉那一行,那么页面就会加载。
另一方面,这是一个实际有效的略有不同的版本:
window.onload = function() {
var body_elems = document.body.getElementsByTagName("*");
for (var i = 0; i < body_elems.length; i++) {
if (body_elems[i].nodeType != 3) {
var tag_name = body_elems[i].tagName;
var child = document.createTextNode(tag_name);
body_elems[i].appendChild(child);
child.className="hoverNode";
}
}
}
但我无法弄清楚如何为新节点分配类名以便应用CSS,所以如果有人能告诉我怎么做,我的问题就会解决。
我是JS的新手,所以任何帮助都会非常感激。