【问题标题】:If two divs have a class added. All the classes have to remove如果两个 div 添加了一个类。所有的类都必须删除
【发布时间】:2019-03-24 10:36:11
【问题描述】:

我的代码有点问题。如果我单击 2 个 div,它们会显示一个随机数,但如果我单击第三个 div。我所有的号码都必须删除,但它不起作用。有人可以帮我吗?

let mijnDivs = document.querySelectorAll("div")
let i = 0
while (i<mijnDivs.length) {
  mijnDivs[i].addEventListener("click", toevoegen)
  i++
}
function toevoegen(event) {
  console.log("het werkt")
  let nummer = randomNumber(1,9)
  this.innerHTML = nummer
  this.classList.toggle("zichtbaar")
  if (this.classList.contains("zichtbaar").length === 2) {
    console.log("yay")
  }
}
function randomNumber (min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。请参阅:如何创建minimal reproducible example

标签: javascript html random


【解决方案1】:

@julie,如果我理解正确,当点击同一个 div 时,前两次它应该显示随机数。第三次,它应该清除它。如果我的理解是正确的,那么问题是classList.toggle 不会继续添加类。如果它存在,它会删除它,如果它不存在,它会添加它。永远不会出现this.classList.contains("zichtbaar").length 大于 1 的情况。

解决方案可能是将点击次数存储在数据属性中并检查它以查看是否需要生成随机数或清除它。 MDN参考:https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多