insertBefore在两个类名上

时间:2012-07-11 07:19:28

标签: javascript

我的代码遇到问题。我正在创建新的div,然后在具有timetime2类的每个元素之前插入它们。不幸的是我的代码不起作用我得到insertBefore是未定义的错误。我怀疑它是我的循环,但我需要进一步的帮助。

window.onload = function () {
    var badges, timeOne, timeTwo, parentDiv;

    timeOne = document.getElementsByClassName("time");
    timeTwo = document.getElementsByClassName("time2");

    for (index = 0; index < timeOne.length; ++index) {
        badges = document.createElement("div");
        badges.id = "badges";
        parentDiv = timeOne.parentNode;
        parentDiv.insertBefore(badges, timeOne[index]);
    }

    for (index = 0; index < timeTwo.length; ++index) {
        badges = document.createElement("div");
        badges.id = "badges";
        parentDiv = timeTwo.parentNode;
        parentDiv.insertBefore(badges, timeTwo[index]);
    }
}

1 个答案:

答案 0 :(得分:0)

timeOne不是元素而是数组,因此它没有parentNode

您可能想要使用

parentDiv = timeOne[index].parentNode;
parentDiv.insertBefore(badges, timeOne[index]); 

为了避免这些错误,我建议你为变量提供更有意义的名称。例如

var timeOneElements = document.getElementsByClassName("time");