错误无法读取未定义的属性“add”

问题描述 投票:1回答:2

我的运动有点困难。我知道有很多关于这个错误的问题,但我找不到答案。希望你能帮忙!

这是我的代码:

let mijnDivs = document.querySelectorAll('div')
let i = 0;
let woorden = ["kip", "konijn", "paard", "varken", "gerbil", "hamster",
  "rat", "zeeduivel", "narwal", "orka"
];
while (i < mijnDivs.length) {
  i++;
}
setInterval(() => {
  twoSec();
}, 2000);

function randomNumber(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function twoSec(woorden) {
  let randomWords = this.classList.add(woorden[randomNumber(0, 9)])
}
javascript arrays class random setinterval
2个回答
1
投票

首先,woorden是一个全局变量,你不应该将它指定为twoSec函数的参数。

其次,你应该在mijnDivs中遍历DIV,并在那里设置类列表。

function twoSec() {
  for (let i = 0; i < mijnDivs.length; i++) {
    mijnDivs[i].classList.add(woorden[randomNumber(0, 9)]);
  }
}

0
投票

示例代码有效,但根据您的初始代码,只有最后一个div附加了类名

在set timeout中更改函数调用twoSec(woorden,mijnDivs[i-1]);并将twoSec函数更改为

 function twoSec(woorden,divlist) {
    let randomWords = divlist.classList.add(woorden[randomNumber(0,9)])
    }
© www.soinside.com 2019 - 2024. All rights reserved.