2013-06-05 34 views
0

所有class和id我通過剝離一個div的所有類和IDS,包括其子女:jQuery的明確除了一些

jQuery('#menu-main-menu').find("*") 
    .removeAttr('id').removeAttr('class').end(); 

,但有一個問題,上面的代碼每一個class和id清晰。

但我想保留一些類,如:

icon-* //i.e. icon-home icon-facebook 
active 

請幫我

+0

我想你會需要在項目執行的每一因爲它看起來像你將有一個不能刪除的類的列表。 – RubbleFord

+0

如果一個元素具有'active'和'other_class'類,你想讓它跳過它還是去除'other_class'並且讓'active'仍然存在? – MaX

+0

我想刪除除「active」和「icon-'以外的所有類 – user007

回答

1

這應做到:

jQuery('#menu-main-menu').find("*:not(.active):not([class^=icon-])") 
    .removeAttr('id').removeAttr('class').end(); 
+0

太棒了,它正在工作。其他人的解決方案都打破了我的UL李的佈局 – user007

1

使用not選擇。

jQuery('#menu-main-menu').find("*").not(".active").removeAttr('id').removeAttr('class').end(); 
+0

這是打破我的HTML佈局 – user007

1

如果你知道哪些類刪除,你可以在removeAttr('class')代替使用removeClass('a_class another_class')

如果您不這樣做,您可以使用each()並循環添加到該元素的類,除去所有需要的類。

+0

您的解決方案也在工作 – user007

+0

好聽。 :) – MaX

0

jQuery的not()是最好的選擇。

jQuery('#menu-main-menu') 
    .find("*") 
    .not(".active, [class^='icon-']") 
    .removeAttr('id') 
    .removeAttr('class').end();