使用JavaScript和正则表达式从DOM中删除类名

时间:2017-11-02 04:05:48

标签: javascript html regex dom

我希望以优雅/高效的方式从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]/);
});

3 个答案:

答案 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();
}