我正在剥离包括其子女在内的div的所有类和ID:
jQuery('#menu-main-menu').find("*")
.removeAttr('id').removeAttr('class').end();
但是有一个问题,上面的代码清除了每个类和ID。
但我希望保留一些类:
icon-* //i.e. icon-home icon-facebook
active
请帮帮我
答案 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/