我希望以优雅/高效的方式从DOM中的一系列节点中删除多个类名。有没有办法通过使用正则表达式和classList.remove()的组合来实现这一点?注意我正在寻找纯JavaScript 中的解决方案。
HTML代码
<div class="x">x</div>
<div class="o">o</div>
我当前的方法
document.querySelectorAll("div").forEach(function(currEl) {
currEl.classList.remove("x");
currEl.classList.remove("o");
})
我的问题 - 以下不起作用;但是,存在类似的东西吗?
document.querySelectorAll("div").forEach(function(currEl) {
currEl.classList.remove(/[xo]/);
});
答案 0 :(得分:0)
不完全是你提出的问题,但这可能会有所帮助
document.querySelectorAll("div").forEach(function(currEl) {
currEl.classList.remove("x","o");
});
答案 1 :(得分:0)
使用扩展语法添加或删除多个类。你可以根据需要将更多的类推入数组......
let cls = ["foo", "bar"];
然后是:
currEl.classList.remove(...cls);
答案 2 :(得分:0)
您可以在querySelectorAll中传递多个选择器。
尝试这个:
var currEl = document.querySelectorAll("div.x, div.o");
for (var i = 0; i < currEl.lenght; i++) {
currEl[ i ].className.remove();
}