如何解决错误:TypeError:elements.classList未定义?

时间:2019-05-08 19:17:49

标签: javascript html

我正在尝试使用classList将名为“ blackbackdrop”的类添加到每个具有名为“ icon”的类的元素中。 不幸的是,由于错误TypeError: elements.classList is undefined

,它不起作用

我正在使用以下代码:

function blackBackDropIcon() {
  var elements = document.getElementsByClassName("icon");
  elements.classList.add('blackbackdrop');
}

4 个答案:

答案 0 :(得分:2)

尝试

   function blackBackDropIcon() {
        var elements = document.getElementsByClassName("icon");
        for (i = 0; i < elements.length; i++) {
            elements[i].classList.add('blackbackdrop');
        }
    }

答案 1 :(得分:1)

这不是jQuery,您不能通过引用元素列表在所有元素上添加类。您必须迭代所有元素,例如:

Array.from(document.getElementsByClassName("icon"))
.foreach(elt => elt.classList.add('blackbackdrop'))

答案 2 :(得分:1)

它返回数组,因此您需要通过循环添加数组的所有元素并逐一添加。

这是代码...

function blackBackDropIcon() {
        var elements = document.getElementsByClassName("icon");
        for (a = 0; a < elements.length; a++) {
            elements[a].classList.add('blackbackdrop');
        }
    }

说明: 您不能直接给所有元素数组类,而可以通过array给它。

答案 3 :(得分:1)

这是我完成这项任务的方式:

var topics = document.querySelectorAll(".topic");

    for (i = 0; i < topics.length; i++) {
        topics[i].classList.remove('displayed-element');
        topics[i].classList.add('hidden-element');
    }