用於動態增加class類名
.addClass( className )方法
- .addClass( className ) : 為每個匹配元素所要增加的一個或多個樣式名
- .addClass( function(index, currentClass) ) : 這個函數返回一個或更多用空格隔開的要增加的樣式名
注意事項:
.addClass()方法不會替換一個樣式類名。它只是簡單的添加一個樣式類名到元素上
簡單的描述下:在p元素增加一個newClass的樣式
<p class="orgClass"> $("p").addClass("newClass")
那么p元素的class實際上是 class="orgClass newClass"樣式只會在原本的類上繼續增加,通過空格分隔
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <style> .left, .right { width: 300px; height: 120px; } .left div, .right div { width: 100px; height: 90px; padding: 5px; margin: 5px; float: left; border: 1px solid #ccc; } .newClass{ background: #bbffaa; } .imoocClass{ background: red; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h2>.addClss()方法</h2> <div class="left"> <div class="aaron"> <p>newClass</p> </div> <div class="aaron"> <p>newClass</p> </div> </div> <div class="right"> <div class="aa bb imooc"> <article> <p>imoocClass</p> </article> </div> <div class="bb cc imooc "> <article> <p>imoocClass</p> </article> </div> </div> <script type="text/javascript"> //class=left下div元素增加一個新的樣式,增加背景顏色 $('.left div').addClass('newClass') </script> <script type="text/javascript"> //通過className(fucntion)方法 //這個函數返回一個或更多用空格隔開的要增加的樣式名。 //接收index 參數表示元素在匹配集合中的索引位置和html 參數表示元素上原來的 HTML 內容 //找到所有的div,然后通過addClass設置顏色,根據返回的className的判斷, $("div").addClass(function(index,className) { //找到類名中包含了imooc的元素 if(-1 !== className.indexOf('imooc')){ //this指向匹配元素集合中的當前元素 $(this).addClass('imoocClass') } }); </script> </body> </html>
jQuery通過.addClass()方法可以很便捷的增加樣式。如果需要樣式之間的切換,同樣jQuery提供了一個很方便的.removeClass(),它的作用是從匹配的元素中刪除全部或者指定的class
.removeClass( )方法
- .removeClass( [className ] ):每個匹配元素移除的一個或多個用空格隔開的樣式名
- .removeClass( function(index, class) ) : 一個函數,返回一個或多個將要被移除的樣式名
注意事項
如果一個樣式類名作為一個參數,只有這樣式類會被從匹配的元素集合中刪除 。 如果沒有樣式名作為參數,那么所有的樣式類將被移除
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <style> .left, .right { width: 300px; height: 120px; } .left div, .right div { width: 100px; height: 90px; padding: 5px; margin: 5px; float: left; border: 1px solid #ccc; } .newClass{ background: #bbffaa; } .imoocClass{ background: red; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h2>.removeClass()方法</h2> <div class="left"> <div class="aaron newClass"> <p>newClass</p> </div> <div class="aaron newClass"> <p>newClass</p> </div> </div> <div class="right"> <div class="aa bb imoocClass"> <article> <p>imoocClass</p> </article> </div> <div> <article> <p>imoocClass</p> </article> </div> </div> <script type="text/javascript"> //class=left下div元素刪除newClass樣式 $('.left div').removeClass('newClass') </script> <script type="text/javascript"> //.removeClass() 方法允許我們指定一個函數作為參數,返回將要被刪除的樣式 $('.right > div:first').removeClass(function(index,className){ //className = aa bb imoocClass //把div的className賦給下一個兄弟元素div上作為它的class $(this).next().addClass(className) //刪除自己本身的imoocClass return 'imoocClass' }) </script> </body> </html>