jquery動態樣式操作

來源:互聯網
上載者:User

標籤:style   io   color   ar   使用   sp   div   on   cti   

擷取與設定樣式

擷取class和設定class都可以使用attr()方法來完成。例如使用attr()方法來擷取p元素的class,JQuery代碼如下:

1 var p_class = $("p").attr("class"); //擷取p元素的class

使用attr()方法來設定p元素的class,JQuery代碼如下:

1 $("p").attr("‘class", "high");  //設定p元素的class為 "high"

在大多數情況下,它是將原來的class替換為新的class,而不是在原來的基礎上追加新的class。

追加樣式

什麼是追加class呢?假如p元素原本的class為myClass,那麼追加一個名叫high的class後,class屬性變為 “myClass high”,即myClass和high兩種樣式的疊加。JQuery提供了專門的addClass()方法來追加樣式。為了使例子更容易理解,首先在 style標籤裡添加另一組樣式:

1 .high{ color:red; }
2 .another{ font-style:italic; color:blue; }

然後在網頁中添加一個“追加class類”的按鈕,按鈕的事件代碼如下:

1 $("#btn_3").click(function(){
2     $("#nm_p").addClass("another"); // 追加樣式
3 });

最後當單擊“追加class類”按鈕時,p元素樣式就會變為斜體,而先前的紅色字型也會變為藍色。此時p元素同時擁有兩個class值,即"high"和"another"。在CSS中有以下兩條規定。

  1. 如果給一個元素添加了多個class值,那麼就相當於合并了它們的樣式。
  2. 如果有不同的class設定了同一樣式屬性,則後者覆蓋前者。

在上例中,相當於給p元素添加了如下樣式:

1 color : red;        /* 字型顏色設定紅色*/ 
2 font-style:italic;  
3 color:blue;

在以上的樣式中,存在兩個“color”屬性,而後面的“color”屬性會覆蓋前面的“color”屬性,因此最終的“color”屬性的值為“blue”,而不是“red”。

移除樣式

如果使用者單擊某個按鈕時,要刪除class的某個值,那麼可以使用與addClass()方法相反的removeClass()方法來完成,它的 作用是從匹配的元素中刪除全部或者指定的class。例如可以使用如下的JQuery代碼來刪除p元素中值為“high”的class:

1 $("p").removeClass("high");  //移除p元素中值為"high"的class

如果要把p元素的兩個class都刪除,就要使用兩次removeClass()方法,代碼如下:

1 $("p").removeClass("high").removeClass("another");

JQuery提供了更簡單的方法。可以以空格的方式刪除多個class名,代碼如下:

1 $("p").removeClass("high another");

另外,還可以利用removeClass()方法的一個特性來完成同樣的效果。當它不帶參數時,就會將class的值全部刪除,JQuery代碼如下:

1 $("p").removeClass();  //移除p元素的所有class
轉場樣式

JQuery中有一個方法toggle(),JQuery代碼如下:

1 toggleBtn.toggle(function(){      
2       //元素顯示    代碼③      
3 }, function(){      
4       //元素隱藏    代碼④      
5 })

toggle()方法此處的作用是交替執行代碼③和代碼④兩個函數,如果元素原來是顯示的,則隱藏它:如果元素原來是隱藏的,則顯示它。此時,toggle()方法主要是控制行為上的重複切換。

另外JQuery還提供了一個toggleClass()方法控制樣式上的重複切換。如果類名存在則刪除它,如果類名不存在則添加它。例如對p元素進行toggleClass()方法操作。

1 $("p").toggleClass("another");  //重複切換類名“another”

當不斷單擊“轉場樣式”按鈕時,p元素的class的值就會在“myClass”和“myClass another”之間重複切換。

判斷是否含有某個樣式

hasClass()可以用來判斷元素中是甭含有某個class,如果有,則返回true,否則返回false。例如可以使用下面的代碼來判斷p元素中是否含有“another”的class:

1 $("p").hasClass("another");

這個方法是為了增強代碼可讀性面產生的。在JQuery內部實際上是調用了is()方法來完成這個功能的.該方法等價於如下代碼:

1 $("p").is(".another");  //is("."+class);

jquery動態樣式操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.