element.classList.toggle中第二个参数的意义是什么?

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

来自MDN

切换方法有一个可选的第二个参数,它将根据第二个参数的真实性来强制添加或删除类名。例如,要删除一个类(如果存在或不存在),您可以调用element.classList.toggle('classToBeRemoved', false);;要添加一个类(如果存在或不存在),您可以调用element.classList.toggle('classToBeAdded', true);

据我所知,classList是一个令牌列表,并且列表与数组不同,不能有重复的项目。因此,将项目添加到已经具有该项目的列表中不会执行任何操作,而从不包含该项目的列表中删除项目(显然)也不会执行任何操作,这意味着classList.toggle(className, true)classList.add(className)相同,并且classList.toggle(className, false)classList.remove(className)相同。

我想念什么吗?

P.S。无需警告IE兼容性问题。

javascript html dom
2个回答
9
投票
el.classList.toggle("abc", someBool);

代替此:

if (someBool) {
    el.classList.add("abc");
} else {
    el.classList.remove("abc");
}

5
投票
FYI IE11不支持对classList.toggle()的可选第二添加/删除参数。
© www.soinside.com 2019 - 2024. All rights reserved.