.removeClass()
.removeClass( [className ] )
描述:从匹配的元素集合的每个元素上删除一个样式类、多个样式类或者所有样式类。
- className类型:String一个或多个用空格隔开的样式类,要从每个匹配元素上删除这些样式类。
如果该方法包含了一个样式类名作为参数,则只会从匹配的元素集合上删除这个样式类。如果参数中没有指定任何样式类名,则会删除所有的类。
.removeClass()
方法操纵选中的元素的className
属性,而不是操纵元素属性class
。一旦改变了这个属性,浏览器会根据它更新元素属性。这意味着在元素属性class
被更新,而且最后一个样式类名被删除的时候,浏览器可能把该元素属性的值设置成一个空字符串,而不是完全地删除该元素属性。这种行为的一个潜意思是该方法只对带有HTML DOM语义的document起作用(也就是说,不是纯XML document)。
可以从匹配的元素集合上同时删除不止一个样式类,只要用空格隔开,如下所示:
$( "p" ).removeClass( "myClass yourClass" )
该方法通常与.addClass()
配合使用,把元素的样式类从一个切换到另一个,如下所示:
$( "p" ).removeClass( "myClass noClass" ).addClass( "yourClass" );
现在,从所有的段落文本上删除了myClass
类和noClass
类,与此同时添加了yourClass
类。
要想把已有的样式类替换成另一个样式类,我们可以使用.attr( "class", "newClass" )
来代替它。
自从jQuery 1.4,.removeClass()
方法允许我们通过传递给一个函数,来表示要删除样式类。
$( "li:last" ).removeClass(function() { return $( this ).prev().attr( "class" ); });
该示例从最后一个<li>
上删除了倒数第二个<li>
的样式类:
示例
从匹配的元素上删除样式类“blue”。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>removeClass demo</title> <style> p { margin: 4px; font-size: 16px; font-weight: bolder; } .blue { color: blue; } .under { text-decoration: underline; } .highlight { background: yellow; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <p class="blue under">Hello</p> <p class="blue under highlight">and</p> <p class="blue under">then</p> <p class="blue under">Goodbye</p> <script> $( "p:even" ).removeClass( "blue" ); </script> </body> </html>
演示结果
从匹配的元素上删除样式类“blue”和“under”。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>removeClass demo</title> <style> p { margin: 4px; font-size: 16px; font-weight: bolder; } .blue { color: blue; } .under { text-decoration: underline; } .highlight { background: yellow; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <p class="blue under">Hello</p> <p class="blue under highlight">and</p> <p class="blue under">then</p> <p class="blue under">Goodbye</p> <script> $( "p:odd" ).removeClass( "blue under" ); </script> </body> </html>
演示结果
从匹配的元素上删除所有的样式类。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>removeClass demo</title> <style> p { margin: 4px; font-size: 16px; font-weight: bolder; } .blue { color: blue; } .under { text-decoration: underline; } .highlight { background: yellow; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <p class="blue under">Hello</p> <p class="blue under highlight">and</p> <p class="blue under">then</p> <p class="blue under">Goodbye</p> <script> $( "p:eq(1)" ).removeClass(); </script> </body> </html>
演示结果