insertBefore on two class names

insertBefore on two class names

本文关键字:names class two on insertBefore      更新时间:2023-09-26

我的代码有问题。我正在创建新的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]);
    }
}

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

你可能想使用

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

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

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