在jQuery中,所謂的“CSS類名操作”類名操作其實就是為元素添加某個類名、刪除某個類名等。
在jQuery中,類名操作包括:添加類名、刪除類名、切換類名這3種情況。
在jQuery中,我們可以使用addClass()方法為元素添加類名。
語法:
$().addClass("類名")
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
.myLi
{
color:Red;
background-color:#F1F1F1;
font-weight:bold;
}
</style>
<script src="jquery-1.12.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
$("ul li:nth-child(odd)").addClass("myLi");
})
})
</script>
</head>
<body>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>jQuery</li>
<li>ASP.NET</li>
</ul>
<input id="btn" type="button" value="添加" />
</body>
</html>
在浏覽器預覽效果如下:
當我們點擊“添加”按鈕之後,在浏覽器預覽效果如下:
分析:
大家拿這個例子,跟設置多個CSS屬性值的例子對比一下就知道:當需要使用jQuery為某些元素設置太多的CSS樣式時,如果使用css()這個方法,jQuery裡面的代碼會顯得比較臃腫。因此,我們更傾向於先在CSS代碼中定義一個類,在這個類中定義相應的CSS代碼,然後再使用jQuery對這個類名進行相應的添加、刪除、切換,從而達到對樣式進行批量操作,這就是CSS類名操作的真正意義所在!
在jQuery中,我們可以使用removeClass()為元素刪除類名。
語法:
$().removeClass("類名")
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
.myLi
{
color:Red;
background-color:#F1F1F1;
font-weight:bold;
}
</style>
<script src="jquery-1.12.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#add").click(function () {
$("ul li:nth-child(odd)").addClass("myLi");
});
$("#remove").click(function () {
$("ul li:nth-child(odd)").removeClass("myLi");
});
})
</script>
</head>
<body>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>jQuery</li>
<li>ASP.NET</li>
</ul>
<input id="add" type="button" value="添加" />
<input id="remove" type="button" value="刪除" />
</body>
</html>
在浏覽器預覽效果如下:
分析:
在這裡,我們使用addClass()方法為元素添加類名,使用removeClass()方法為元素刪除類名,很方便地對元素的大量樣式進行一次性地操作。
在jQuery中,我們可以使用toggleClass()方法為元素切換類名。toggle就是“切換”的意思,在後面課程裡面我們會大量接觸這個單詞,例如toggle()、slideToggle()等等,希望大家留個心眼理解一下。
語法:
$().toggleClass("類名")
說明:
toggleClass()方法用於檢查元素是否具有某個類名。如果類名不存在,則為該元素添加類名;如果類名已存在,則為該元素刪除類名。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
.myLi
{
color:Red;
background-color:#F1F1F1;
font-weight:bold;
}
</style>
<script src="jquery-1.12.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#add").click(function () {
$("ul li:nth-child(odd)").toggleClass("myLi");
});
})
</script>
</head>
<body>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>jQuery</li>
<li>ASP.NET</li>
</ul>
<input id="add" type="button" value="切換" />
</body>
</html>
在浏覽器預覽效果如下:
分析:
這裡使用toggleClass()方法來切換類名,使得元素可以在“默認樣式”以及“class樣式”之間來回切換。我們點擊一次“切換”按鈕,元素就會切換到類名為myLi的樣式,然後再點擊一次“切換”按鈕,元素又會切換到默認樣式。
從這一節的學習我們知道,使用jQuery操作CSS類名是相當有用的。我們把一大塊CSS代碼封裝到一個類中,這樣使得我們每次只需要對類名進行操作即可,而無需在jQuery中使用css()方法編寫大量的樣式控制代碼,使得我們的jQuery代碼精簡便於維護。當然,當樣式較少的時候,我們還是使用css()方法比較方便。
總結一下:使用jQuery操作元素樣式時,當樣式比較少,建議使用“CSS屬性操作”;當樣式比較多時,建議使用“CSS類名操作”。