在jQuery中过滤掉一个元素的类?

sti*_*man 7 javascript jquery

筛选给定元素上的类列表的最有效方法是什么?

<div class="foo bar"></div>
<div class="bim bar"></div>

$("div.bar").click(function(ev) {
  alert("The non-bar class was:" + ???);
});
Run Code Online (Sandbox Code Playgroud)

我知道我可以编写一个for循环来遍历ev.currentTarget.classList,但我想知道是否有更好的方法.

编辑:我想澄清一下,我希望警报告诉我"foo"和"bim".我不想替换 "bar",我只是希望能够访问非bar的类.谢谢.

Mat*_*att 5

没有jQuery方法可以实现这一点,但我会这样做:

$("div.bar").click(function(ev) {
    var nonBarClasses = (' ' + this.className + ' ').replace(' bar ', ' ').split(/ +/);

    nonBarClasses.shift();
    nonBarClasses.pop();

    // nonBarClasses is now an array, with each element a class that isn't `bar`

    alert("The non-bar class was: " + nonBarClasses.join(" ")); 
});
Run Code Online (Sandbox Code Playgroud)

在这里看到它:http://jsfiddle.net/PpUeX/2