我有一个带有 id="a"
的 div,它可能附加了来自多个组的任意数量的类。每个组都有一个特定的前缀。在 javascript 中,我不知道组中的哪个类在 div 上。我希望能够清除具有给定前缀的所有类,然后添加一个新类。如果我想删除所有以“bg”开头的类,我该怎么做?像这样的东西,但确实有效:
$("#a").removeClass("bg*");
最佳答案
在单词边界 \b
上的正则表达式拆分不是最好的解决方案:
var prefix = "prefix";
var classes = el.className.split(" ").filter(function(c) {
return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = classes.join(" ").trim();
或作为 jQuery 混合:
$.fn.removeClassPrefix = function(prefix) {
this.each(function(i, el) {
var classes = el.className.split(" ").filter(function(c) {
return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = $.trim(classes.join(" "));
});
return this;
};
2018 ES6 更新:
const prefix = "prefix";
const classes = el.className.split(" ").filter(c => !c.startsWith(prefix));
el.className = classes.join(" ").trim();
关于javascript - 删除以特定字符串开头的所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57812/