2013-07-17 112 views
1

我試圖刪除所有運行each()函數的匹配類。jQuery - 刪除所有匹配的類

我正在選擇匹配類,如[class*="ui-id-"]。但我下面的jQuery代碼不會工作:

我的缺陷代碼:

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

請糾正我的代碼,以便它可以刪除所有匹配的類ui-id-

+0

@DavidThomas的OP使用「每個」上的ID選擇'#builder' –

+0

@mck是的,它工作,以前我試過,但不知道爲什麼它沒有工作。 – user007

+0

請給我一個完整的形式OP – user007

回答

3

試試這樣說:

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

應該刪除所有匹配的類。

+0

請再次閱讀問題 – user007

+0

編輯答案。請檢查 – loxxy

+0

是的,它正在工作 – user007

1

你不需要在這裏

每個循環試試這個

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

我刪除了#builder,這將是容易,如果你發佈你相關的html代碼太

找出正確的答案
+0

類仍然存在,我試着從控制檯,但沒有使用 – user007

+1

張貼你的HTML ... – bipen

0

試試這個:

jQuery('.ui-id-').removeClass('ui-id-'); 
+0

你真的測試過嗎?它看起來像我的假。 –

+0

如果'classname'相同,將無法工作模式http://jsfiddle.net/manoj_admlab/NbqUg/1/ –

1
jQuery("#builder [class^='ui-id-']").removeClass(); 

這將刪除所有的課室內用啓動本ui-id-#builder

+0

nope它不會工作 – user007

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); 
     } 
    } 
});