(请只使用纯javascript!)
我想创建一个辅助函数,class
从div
具有多个类的 a 中删除一个。我想象一个功能如下:
function remove_class(div, klass) {
div.className = div.className.replace( /(?:^|\s)active(?!\S)/ , '' );
}
这里删除的类是active
. 但是,我怎样才能删除任何类名,即。klass
一个作为变量传递?
(请只使用纯javascript!)
我想创建一个辅助函数,class
从div
具有多个类的 a 中删除一个。我想象一个功能如下:
function remove_class(div, klass) {
div.className = div.className.replace( /(?:^|\s)active(?!\S)/ , '' );
}
这里删除的类是active
. 但是,我怎样才能删除任何类名,即。klass
一个作为变量传递?
使用RegExp 构造函数而不是 RegExp 文字。构造函数将字符串作为其第一个参数,因此您可以按照自己喜欢的方式构建它。
function remove_class(div, klass) {
div.className = div.className.replace( new RegExp('(?:^|\\s)' + klass + '(?!\\S)'), '' );
}
请注意,使用构造函数时不需要分隔符(前导斜杠和尾随斜杠)。
代替使用 /regexp/ 语法,您可以使用 RegExp: 类似这样的东西:
function remove_class(div, klass) {
var regex = new RegExp('\/(?:^|\\s)' + klass + '(?!\\S)\/');
div.className = div.className.replace( regex , '' );
}