Javascript 如何使用jquery更改所有子级的类?

Javascript 如何使用jquery更改所有子级的类?,javascript,jquery,css,dom,Javascript,Jquery,Css,Dom,我有以下语法,我想从链接标记中删除所有css类。如何使用jquery实现这一点 <div id="nav"> <ul> <li><a href="" class="foo">aa</a></li> <li><a href="" class="bar">aa</a></li> <li><a href="" class="yay">aa</a>&

我有以下语法,我想从链接标记中删除所有css类。如何使用jquery实现这一点

<div id="nav">
<ul>
<li><a href="" class="foo">aa</a></li>
<li><a href="" class="bar">aa</a></li>
<li><a href="" class="yay">aa</a></li>
</ul>
</div>

您可以使用该方法;如果不带参数调用它,它将删除所有类:

$('#nav ul a').removeClass();
描述:从匹配元素集中的每个元素中删除单个类、多个类或所有类


显然,您可以在同一个调用中链接
.addClass('someClass')
;毕竟,你要求改变你问题主题的类别

如果要删除每个类,则如下所示:

$('#nav a').each(function(){
    $(this).removeAttr('class');
});
根据
div#nav
选择器查找所有定位点,并删除所有类名。

您可以使用
$(“a”).removeClass()


下面是一个示例:

可以工作,但无需迭代代码中的元素-您可以使用
.removeClass()
+1显式循环有什么问题?如果在循环中使用了
.removeClass()
,则情况会有所不同,但这里的情况并非如此……嗯,似乎对性能有影响。可能是因为避免了函数调用……但是否决这个答案是愚蠢的。性能差异永远不会明显。如果性能是一个很大的问题,那么jQuery就不会被使用了。@epascarello:如果我使用的是
removeClass
,你就对了。我只是短路@amnotiam:性能可以忽略不计。我正在用一个嵌入的循环重新解析一个对的调用,然后把这个循环放在前面,自己调用一个直接的DOM属性。使用
每个
的任何损失都会在调用堆栈中获得较少的条目。在修改现有元素时使用属性几乎总是一个坏主意。使用
this.className=''
$(this).prop('className','')
(但请参阅我在BradChristie答案中的评论)@epascarello有待更正,但我认为它在内部使用了每一个选项。我的意思是,不需要执行每一个选项,它可以像选择的答案一样执行,在内部执行循环。如果元素上有多个更改,而不仅仅是一个属性,那么您的解决方案将非常好。我将保持原样,并将其记为一种风格选择:)
$('#nav ul li a').each(function(){
    this.className = '';
});