Javascript 删除与正则表达式匹配的类
我想先删除匹配的类,如Javascript 删除与正则表达式匹配的类,javascript,jquery,regex,match,Javascript,Jquery,Regex,Match,我想先删除匹配的类,如typeone,然后再添加新类,如typetwo HTML: <div class="demo test"> <span>One</span> <span>Two</span> <span>Three</span> </div> $(document).on("click" ,".demo > span", function(){
typeone
,然后再添加新类,如typetwo
HTML:
<div class="demo test">
<span>One</span>
<span>Two</span>
<span>Three</span>
</div>
$(document).on("click" ,".demo > span", function(){
$(this).addClass("active").siblings().removeClass("active");
$(this).parents(".demo").removeClass(function(i, c){
return c.match(/type-[a-z]{0,5}/);
})
$(this).parents(".demo").addClass("type-"+$(this).text().toLowerCase());
})
我的代码仍在添加,无法删除旧的匹配类
我做错了什么
演示:c.match(/type-[a-z]{0,5}/)
正在返回一个包含一个元素的数组
您需要指定一个索引,即c.match(/type-[a-z]{0,5}/)[0]
,但首先应该检查是否发生了匹配,否则将引发错误
$(this).parents(".demo").removeClass(function(i, c){
var m = c.match(/type-[a-z]{0,5}/);
return m ? m[0] : m
})
那么这个呢:
$(document).on("click" ,".demo > span", function(){
$(this).addClass("active").siblings().removeClass("active");
$(this).parents(".demo").removeClass().addClass("demo type-" + $(this).text().toLowerCase());
});
在这里,我们删除了所有类名,包括
demo
,然后用新的类型xxx
类重新设置它。这也是工作,但是在加载之前jQuery添加了很多类:D,无论如何谢谢:D