jQuery清除所有类和ID除了一些

时间:2013-06-05 07:20:27

标签: jquery

我正在剥离包括其子女在内的div的所有类和ID:

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

但是有一个问题,上面的代码清除了每个类和ID。

但我希望保留一些类:

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

请帮帮我

5 个答案:

答案 0 :(得分:1)

使用not选择器。

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

答案 1 :(得分:1)

如果您知道要删除哪些类,则可以使用removeClass('a_class another_class')代替removeAttr('class')

如果不这样做,您可以使用each()并循环添加到元素中的类,除去您需要的所有类。

答案 2 :(得分:1)

这应该这样做:

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

答案 3 :(得分:0)

jQuery not()是最佳选择。

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

答案 4 :(得分:0)

试试吧,

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

阅读attribut start selectors http://api.jquery.com/attribute-starts-with-selector/

not() http://api.jquery.com/not