Javascript 我试图将一个类添加到某个div,而它只是将它添加到具有此ID的一个div,为什么?

Javascript 我试图将一个类添加到某个div,而它只是将它添加到具有此ID的一个div,为什么?,javascript,Javascript,我正在尝试根据此控制盘何时停在平铺上向div添加一个类。我是javascript新手,我正在努力学习。当轮子停在数据变量中的第一个标签上而不是其他标签上时,它会工作,为什么?下面是将类添加到div的javascript var name=document.getElementByIdslide-area; var divname=document.getElementByIdquestion-slide; var number=divname.getAttributedata-number;

我正在尝试根据此控制盘何时停在平铺上向div添加一个类。我是javascript新手,我正在努力学习。当轮子停在数据变量中的第一个标签上而不是其他标签上时,它会工作,为什么?下面是将类添加到div的javascript

var name=document.getElementByIdslide-area; var divname=document.getElementByIdquestion-slide; var number=divname.getAttributedata-number; var pickvalue=数据[picked].value; ifpickvalue==数字{ divname.className+=显示; } 您的问题是id属性必须是唯一的。在这个页面上,JS在选择器问题幻灯片下只能看到一个div。最好由一个班级来挑选:

document.querySelectorAll('.slide-area .question-display').forEach(div => {
  // do stuff to the div
});

事实上,浏览器会呈现无效的HTML。浏览器引擎总是朝这个方向倾斜,尽可能地修复损坏的HTML,如果可以的话。因此,他们只接受slide div向JavaScript提出的第一个问题。尽管DOM树仍然显示这种无效的结构,但其他的都是在集线器下修复的。

仔细看看您要做的事情,根本问题确实是id在页面中必须是唯一的,不能有多个元素具有相同的id。但是,与使用类对特定类型的对象进行分类不同,一种简单的方法是通过在ID后面加上一个数字来使其唯一,就像这样请注意ID末尾的数字:


它在这里起作用:

id是唯一的标识符。页面上应该只有一个具有给定ID的元素。您可以使用类来标识类似对象的组,例如,您可以使用document.getElementsByClassName。因此,我尝试将divname更改为target by class,它停止工作,并停止旋转。为什么呢?我的if语句应该放在括号里吗?太好了!谢谢如果您能告诉我如何从以前应用该类的任何div中删除display类,将获得额外的积分。我试过几种不同的方法,但似乎都不管用。
<div id="question-slide1" class="question-display" data-number="1">
    <h1>hello world 1</h1>
</div>
<div id="question-slide2" class="question-display" data-number="2">
    <h1>hello world 2</h1>
</div>
<div id="question-slide3" class="question-display" data-number="3">
    <h1>hello world 3</h1>
</div>
container.on("click", spin);

var pickvalue = data[picked].value;
var name = document.getElementById("slide-area");
var divname = document.getElementById("question-slide" + pickvalue);
var number = divname.getAttribute("data-number");

if(pickvalue == number){ 
    divname.className += " display";
}