为什么 classList 抛出 'undefined' 除非我专门使用 getElementById?
Why does classList throw 'undefined' unless I specifically use getElementById?
我的大脑正在融化为什么我不能 select 具有相同 class 的多个元素(querySelector、querySelectorAll、getElementsByClassName 等)并使用 classList 检查是否只有一个 div 包含一个 class.
我看过一些教程,其中完全使用 getElementsbyClassName 作为示例,就像它们起作用一样。就我而言,在 Firefox 上,它是 Uncaught TypeError: document.getElementsByClassName(...).classList is undefined
我给这些 div 一个 css class ontoggle -
<div class="dot-container">
<div class="dot-button" id="1" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="2" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="3" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="4" onclick="activateDot(this.id)"></div>
</div>
function activateDot(id) {
if(document.getElementsByClassName('dot-button').classList.contains('db-active')) {
console.log('bruh');
} else {
console.log('bruw');
}
document.getElementById(id).classList.toggle('db-active');
}
有效的是 -
function activateDot(id) {
document.getElementById(1).classList.remove('db-active');
document.getElementById(2).classList.remove('db-active');
document.getElementById(3).classList.remove('db-active');
document.getElementById(4).classList.remove('db-active');
document.getElementById(id).classList.toggle('db-active');
}
呜呜呜
getElementsByClassName returns DOM 个节点的列表,同时通过 ID returns 获取单个元素的元素。您需要遍历元素列表并为每个元素添加/切换所需的 class
我的大脑正在融化为什么我不能 select 具有相同 class 的多个元素(querySelector、querySelectorAll、getElementsByClassName 等)并使用 classList 检查是否只有一个 div 包含一个 class.
我看过一些教程,其中完全使用 getElementsbyClassName 作为示例,就像它们起作用一样。就我而言,在 Firefox 上,它是 Uncaught TypeError: document.getElementsByClassName(...).classList is undefined
我给这些 div 一个 css class ontoggle -
<div class="dot-container">
<div class="dot-button" id="1" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="2" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="3" onclick="activateDot(this.id)"></div>
<div class="dot-button" id="4" onclick="activateDot(this.id)"></div>
</div>
function activateDot(id) {
if(document.getElementsByClassName('dot-button').classList.contains('db-active')) {
console.log('bruh');
} else {
console.log('bruw');
}
document.getElementById(id).classList.toggle('db-active');
}
有效的是 -
function activateDot(id) {
document.getElementById(1).classList.remove('db-active');
document.getElementById(2).classList.remove('db-active');
document.getElementById(3).classList.remove('db-active');
document.getElementById(4).classList.remove('db-active');
document.getElementById(id).classList.toggle('db-active');
}
呜呜呜
getElementsByClassName returns DOM 个节点的列表,同时通过 ID returns 获取单个元素的元素。您需要遍历元素列表并为每个元素添加/切换所需的 class