jquery删除多个变量类

isa*_*isa 2 jquery

我有以下DOM元素:

<div id="container">
    <ul class="block-grid three-up">
        <li>One</li>
        <li>Two</li>
        <li>Three</li>
        <li>Four</li>
        <li>Five</li>
        <li>Six</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我想要做的是让ul有一个类来说明哪些li正在盘旋.到目前为止,我有:

$('#container li').hover(function() {
        i = $(this).index() + 1;
        // need function to remove all classes that start with n- here
        $('#container ul').addClass('n-'+i);
        $(this).addClass('active');
    }, function() {
        // need function to remove all classes that start with n- here
        $(this).removeClass('active');
    }
);
Run Code Online (Sandbox Code Playgroud)

我需要找到一种方法来删除所有以n-开头的类,因为现在编写的代码只是添加并向ul添加类.我不能简单地删除所有其他类,因为出于结构原因,我需要其他类.而且我知道在removeClasses中没有办法使用通配符.我可以在这里使用某种正则表达式吗?

ade*_*neo 5

要回答这个问题,并且只是为了好玩,这里有一个基于他们开始时删除类的插件:

$.fn.removeClassStartsWith = function(param) {
    return this.each(function() {
        var classes = this.className.split(/\s+/g),
            newclasses = [];

        $.each(classes, function(_,klass) {
            if ( $.trim(klass).indexOf(param) !== 0 ) 
               newclasses.push($.trim(klass));
        });

        this.className = newclasses.join(' ');
    });
}
Run Code Online (Sandbox Code Playgroud)

被称为:

$('elements').removeClassStartsWith('n-');
Run Code Online (Sandbox Code Playgroud)

小提琴