2

我现在完成了,但我必须调用 2 次.removeClass()函数

如何合并它以在一个正则表达式调用中找到结果?

HTML:

<div class="one-abc two-cba three-bac"></div>

jQuery :

$('div')
  .removeClass(function(i,c){var m=c.match(/one-[a-z]{0,5}/);return m?m[0]:m;})
  .removeClass(function(i,c){var m=c.match(/two-[a-z]{0,5}/);return m?m[0]:m;});

演示:http: //jsbin.com/umoded/1/edit


查找包含多个类中的类名

使用正则表达式删除匹配的类

4

2 回答 2

4

将两个表达式合二为一,使用g并加入匹配项:

  var m = c.match(/(one-[a-z]{0,5}|two-[a-z]{0,5})/g);
  return m ? m.join(' ') : m;

http://jsfiddle.net/ExplosionPIlls/mnYpB/

于 2013-02-15T13:11:05.253 回答
3

来自 api.jquery.com:

一次可以从一组匹配的元素中删除多个类,用空格分隔,如下所示:
$('p').removeClass('myClass yourClass')

-->

.removeClass(function(i,c){
    var m=c.match(/one-[a-z]{0,5}/);
    var n=c.match(/two-[a-z]{0,5}/);
    return m+" "+n;});
于 2013-02-15T13:13:05.990 回答