如何在几个元素上添加className并定义它们?

时间:2019-04-30 19:06:19

标签: javascript

我有一个任务是下载文档

元素,并为它们放置类名称为“ bodyCopy”的类,并带有标记selektor和类操作。该类在单独的CSS文档中给出。

我为此做了一个代码,请参见下文。代码可以工作,但是当我验证代码时,它是未定义的,并且由于该定义错误,下面的代码无法运行。即使可以正常工作,我的代码还是错误的?或者我错过了定义某些内容的机会?

    var a = document.getElementsByTagName("p");
       for(i = 0; i <= a.length; i++) {
          a[i].classList.add("bodyCopy");   
       }

当我验证时说a [i]未定义,并且下面的代码无法继续。我在做什么错了?

2 个答案:

答案 0 :(得分:2)

var a = document.getElementsByTagName("p");
for(i = 0; i < a.length; i++) {
   a[i].classList.add("bodyCopy");   
}

只需要是<而不是<= ...这只是一个单一的错误。之所以有效,是因为直到完成所有任务后才发生错误。

答案 1 :(得分:1)

已经有了一个很好的答案,但是还有另一种选择。您还可以使用forEach函数,它可以清除很多代码,并且功能相同。

let elements = document.querySelectorAll("p");
elements.forEach(p=>{
    p.classList.add("bodyCopy");
});