DOM操作之屬性和樣式操作


在DOM操作,除了前面的節點操作以外,常常被用到的操作還有屬性操作和節點操作,下面,主要來總結一下jQuery中的屬性操作方法和樣式操作方法。

在開始操作前,我們需要先在html中添加如下代碼,后面所有的操作都是基於該DOM結構進行的。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="jquery-3.2.1.js"></script>
  <style>
    .red{
      color:red;
    }
    .blue{
      color:blue;
    }
    .yellow{
      color:yellow;
    }
    </style>
</head>
<body>
  <p title="選擇你最喜歡的水果">你最喜歡的水果是?</p>
  <ul>
    <li title='蘋果' class="red">蘋果</li>
    <li title='香蕉'>香蕉</li>
    <li title='荔枝'>荔枝</li>
    </ul>
  <script>
  
  </script>
</body>
</html>

屬性操作

獲取和設置屬性

在前面我們提到過一個方法attr(),通過給該方法添加一個參數(屬性名稱),可以獲取相應信息。

$(function(){
     var txt = $("ul li:eq(1)").attr("title");
     console.log(txt);
})

當給該方法傳遞多個參數時,可以用來設置相關屬性。

$(function(){
        $("ul li:eq(1)").attr("title","最喜歡的水果");
        $("ul li:eq(2)").attr({"title":"水果","name":"荔枝"});
 })

 刪除屬性

在jQuery中,使用removeAttr()方法刪除某個元素的特點屬性。

 $(function(){
       $("p").removeAttr("title");
 })

樣式操作

獲取和設置樣式

因為class也是和title一樣,也屬於元素的屬性,所以,我們可以使用attr()來獲取和設置元素的class。

 
         
$(function(){
  var txt1 = $("ul li:eq(0)").attr("class");
  console.log(txt1);
  $("ul li:eq(0)").attr("class","blue");
  var txt2 = $("ul li:eq(0)").attr("class");
  console.log(txt2);
})
 
        

   

使用attr()方法設置樣式時,新的樣式覆蓋了之前的樣式。

添加樣式

有的時候,我們希望為某個元素添加樣式,但是又不覆蓋之前原有的樣式,很明顯,attr()並不能滿足我們的要求,這個時候,我們需要用到一個新的方法addClass(),該方法是在不改變原有樣式的基礎上,在后面添加新的樣式。

 $(function(){
        var txt1 = $("ul li:eq(0)").attr("class");
        console.log(txt1);
        $("ul li:eq(0)").addClass("blue");
        var txt2 = $("ul li:eq(0)").attr("class");
        console.log(txt2);
 })

   

移除樣式

 在上面,我們知道可以用removeAttr()方法刪除元素的屬性,自然,這個方法可以用來刪除元素的樣式。

$(function(){
       $("ul li:eq(0)").removeAttr("class");
 })

 

除了刪除屬性的方法外,jQuery中,還有一個專門用來刪除元素樣式的方法:removeClass(),參數為需要刪除的類名,該方法可以同時刪除一個或多個樣式,多個類名中間用空格間隔即可,當該方法不帶參數時,表明要刪除該元素的所有方法。

 $(function(){
       $("ul li:eq(0)").removeClass("red");
 })

  

判斷是否含有某個樣式

hasClass()方法可以用來判斷元素中是否含有某個class,如果有,返回true,否則,返回false。

 $(function(){
       var txt1 = $("ul li:eq(0)").hasClass("red");
        var txt2 = $("ul li:eq(1)").hasClass("red");
        console.log(txt1);
        console.log(txt2);
 })


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM