1

我正在尝试删除所有匹配的类运行each()功能。

我正在选择匹配类,如[class*="ui-id-"]. 但是我下面的 jquery 代码不起作用:

我的错误代码:

jQuery('#builder [class*="ui-id-"]').each(function(){
    jQuery(this).removeClass('[class*="ui-id-"]');
});

请更正我的代码,以便它可以删除所有匹配的类ui-id-

4

5 回答 5

4

试试这种方式:

$('#builder [class*="ui-id-"]').removeClass(function(i, j) {
           return j.match(/ui-id-/g).join(" ");
});

应该删除所有匹配的类。

于 2013-07-17T05:42:03.360 回答
2

不幸的是,最简单的方法是迭代所有元素:

jQuery('#builder').find('*').each(function() {
    var classes = this.className.split(/\s+/);

    $.each(classes, function(i, c) {
        if (c.indexOf('ui-id-') === 0) {
            $(this).removeClass(c);
        }
    }
});
于 2013-07-17T05:52:35.513 回答
1
jQuery("#builder [class^='ui-id-']").removeClass();

ui-id-这将删除所有开始的类#builder

于 2013-07-17T05:51:19.753 回答
1

你不需要这里的每个循环

尝试这个

 jQuery('[class*="ui-id-"]').removeClass('[class*="ui-id-"]');

我删除了#builder,如果您也发布相关的html代码,将很容易找出正确答案

于 2013-07-17T05:42:12.827 回答
0

尝试这个:

jQuery('.ui-id-').removeClass('ui-id-');
于 2013-07-17T05:42:50.910 回答