JavaScript createElement行导致错误

时间:2016-10-04 13:31:55

标签: javascript html dom createelement

我正在编写一个简单的JavaScript程序来检查HTML网站中的每个元素,并将子节点添加到标记标记类型的每个非文本节点:

browser screenshot

这是我的代码:

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的新手,所以任何帮助都会非常感激。

0 个答案:

没有答案