自學jQuery必看的的屬性和屬性節點操作(超詳細易懂)

什麼是屬性?

對象上保存的變量就是屬性。
例如下面這個栗子:
給person這個對象添加了一個age屬性

function Person() {

};
var person = new Person();
//age是屬性
person.age = 18;

如何操作屬性?

賦值操作:對象名.屬性名稱 = value 或者 對象名[“屬性名稱”] = value
獲取操作:對象名.屬性名稱 或者 對象名[“屬性名稱”]

什麼是屬性節點?

(1)在編寫HTML代碼時,在HTML標籤中添加的屬性
例如:<span name=“demo”></span> 這裏的 name 就是屬性節點
(2)在瀏覽器當中找到span這個DOM元素之後,展開看到的都是屬性在attributes屬性中保存的內容都是屬性節點。

請大噶關注金黃色背景部分
在這裏插入圖片描述

如何操作屬性節點?

(1)更改DOM元素屬性節點的Value: DOM元素.setAttribute(“屬性名稱”,“newValue”);
(2)獲取DOM元素某一屬性節點的Value: DOM元素.getAttribute(“屬性名稱”)

var span = document.getElementsByTagName("span")[0];
span.setAttribute("name","change");
span.getAttribute("name")

屬性和屬性節點有什麼區別?

任何對象都有屬性,只有DOM元素纔有屬性節點

jQuery的attr方法和removeAttr方法

attr()方法:
(1)作用: 獲取或設置屬性節點的值
(2)注意點一: 可以傳遞一個參數,也可以傳遞兩個參數。如果傳遞一個參數,代表獲取屬性節點的值;若傳遞兩個參數,代表設置屬性節點的值
(3)注意點二: 無論找到多少個元素, 都只會返回第一個元素指定的屬性節點的值;如果是設置找到多少個元素就會設置該N個元素的屬性節點值;如果設置的屬性節點不存在,那麼系統會在所有找到的元素中 自動新增該屬性節點
(4)返回值: 返回屬性值的函數,第一個參數爲當前元素的索引值,第二個參數爲原先的屬性值

removeAttr()方法:
(1)作用: 刪除屬性節點
(2)注意點: 會刪除所有找到元素指定的屬性節點;也可以刪除多個屬性節點
(3)返回值: 返回屬性值的函數,第一個參數爲當前元素的索引值,第二個參數爲原先的屬性值

註釋部分爲特別關注

<body>
  <p class="p1" name="name1"></p>
  <p class="p2" name="name2"></p>

  <script src="../jquery.js"></script>
  <script>  
    $(function() {
      //attr()
      //作用:獲取或設置屬性節點的值
      //可以傳遞一個參數,也可以傳遞兩個參數
      //如果傳遞一個參數,代表獲取屬性節點的值;若傳遞兩個參數,代表設置屬性節點的值
      //注意:1、無論找到多少個元素,都只會返回第一個元素指定的屬性節點的值
      //    2、如果是設置找到多少個元素就會設置該N個元素的屬性節點值
      //    3、如果設置的屬性節點不存在,那麼系統會在所有找到的元素中自動新增該屬性節點
      console.log($('p').attr('class'));
      console.log($('p').attr('class',"change"));
      console.log($('p').attr('a',"a"));
      /*removeAttr(name)
        刪除屬性節點
        注意:1、會刪除所有找到元素指定的屬性節點
              2、可以刪除多個屬性節點
      */
      console.log($('p').removeAttr("a"));
      console.log($('p').removeAttr("class name"));
    })
  </script>
</body>

在這裏插入圖片描述
在這裏插入圖片描述

jQuery的prop方法和removeProp方法

注意:
(1)prop方法和removeProp方法是對屬性的操作
(2)eq(i)代表的是所有元素中的第(i+1)個元素。例如示例中 $(“p”).eq(0) 代表第一個 p元素
(3)prop方法和removeProp方法注意點和jQuery的attr方法和removeAttr方法相同
(4)prop方法和removeProp方法既可以操作屬性也可以操作屬性節點
(5)返回值: prop方法返回屬性值的函數,第一個參數爲當前元素的索引值,第二個參數爲原先的屬性值。
註釋部分爲特別關注

<body>
  <p class="p1" name="name1"></p>
  <p class="p2" name="name2"></p>

<script src="../jquery.js"></script>
<script>
    $(function() {
      /*prop方法
      特點和attr方法一致
      */
      $("p").eq(0).prop("demo","1");
      $("p").eq(1).prop("demo","2");
      console.log( $("p").prop("demo"));
      
      /*removeProp方法
        特點和removeAttr方法一致
      */
      $("p").eq(0).removeProp("demo")
      //還可以操作屬性節點
      console.log( $("p").prop("class"));
      console.log( $("p").prop("class","change"));      
    });
</script>
</body>

在這裏插入圖片描述
在這裏插入圖片描述

jQuery的prop方法和removeProp方法與jQuery的attr方法和removeAttr方法的不同點

(1)attr方法和removeAttr方法只能操作屬性節點;prop方法和removeProp方法既可以操作屬性也可以操作屬性節點
(2)官方推薦在操作屬性節點時,具有true和false的兩個屬性節點,如checkbox、selected、或者disabled使用prop方法和removeProp方法,其他使用attr方法和removeAttr方法

實例一:checkbox已選定

<body>
  <input type="checkbox" checked>

<script src="../jquery.js"></script>
<script>
    $(function() {
      console.log($("input").prop("checked"));
      console.log($("input").attr("checked"));
    });
</script>
</body>

在這裏插入圖片描述
實例二:checkbox未選定

<body>
  <input type="checkbox" >

<script src="../jquery.js"></script>
<script>
    $(function() {
      console.log($("input").prop("checked"));
      console.log($("input").attr("checked"));
    });
</script>
</body>

在這裏插入圖片描述
小案例
案例描述:點擊按鈕切換在瀏覽器中顯示的圖片
步驟:
(1)對按鈕進行點擊事件的監聽
(2)獲取 input 中輸入的圖片路徑,使用 attr方法或prop方法imgsrc 作修改。(推薦使用attr方法)
註釋部分爲特別關注

<body>
  <input type="text">
  <button>點我切換圖片</button><br>
  <img src="../program1/images/1.jpg" width="200px">

<script src="../jquery.js"></script>
<script>
    $(function() {
      //1、給按鈕組件添加點擊事件
      var btn = document.getElementsByTagName("button")[0];
      btn.onclick = function() {
        //2、獲取輸入框輸入內容
        var input = document.getElementsByTagName("input")[0];
        var value = input.value;
        //3、修改img的src屬性節點的值
        $("img").attr("src",value);     //推薦使用
        // $("img").prop("src",value);    也可以實現,但不推薦使用, 因爲沒有涉及到true和false
      }
      
    });
</script>
</body>

在這裏插入圖片描述

jQuery類操作的相關方法

1、addClass(class|fn)
(1) 作用:添加一個或多個類
(2) 如果要添加多個類,則多個類名之間用空格隔開即可

2、removeClass([class|fn])
(1)作用:刪除一個或多個類
(2)如果要刪除多個類,則多個類名之間用空格隔即可

3、toggleClass(class|fn[,sw])
(1)作用:切換一個或多個類,既有類就刪除這個類,沒有這個類就添加這個類
(2)如果要刪除多個類,則多個類名之間用空格隔即可

樣式設置:

<style>
  *{
    margin: 0;
    padding: 0;
  }
  .box1 {
    width: 100px;
    height: 100px;
    background-color: blue;
  }
  .box2 {
    border: 2px solid #000;
  }
</style>

核心代碼:

<body>
  <button>點我添加類</button>
  <button>點我刪除類</button>
  <button>點我切換類</button>
  <div></div>

  <script src="../jquery.js"></script>
  <script>  
    $(function() {
      var btn = document.getElementsByTagName("button");
      btn[0].onclick = function() {
        $("div").addClass("box1 box2");
      };
      btn[1].onclick = function() {
        $("div").removeClass("box1 box2");
      };
      btn[2].onclick = function() {
        $("div").toggleClass("box1");
      };
    })
  </script>
</body>

在這裏插入圖片描述

jQuery文本值操作相關的方法

1、html([val|fn]): 和原生JS中的innerHTML相同
2、text([val|fn]): 和原生JS中的innerText相同
3、val([val|fn|arr]): 可以設置或者獲取value的值

樣式設置:

<style>
       div {
         width: 100px;
         height: 100px;
         border: 2px solid #000;
       }
     </style>

核心代碼:

<body>
  <button>點我設置HTML</button>
  <button>點我獲取HTML</button>
  <button>點我設置text</button>
  <button>點我獲取text</button>
  <button>點我設置value</button>
  <button>點我獲取value</button>
  <div> </div>
  <input type="text">
<script src="../jquery.js"></script>
<script>
    $(function() {
      var btn = document.getElementsByTagName("button");
      btn[0].onclick = function() {
        $("div").html("<p>我是添加的html段落</p>");
      }
      btn[1].onclick = function() {
        console.log( $("div").html());
      }
      btn[2].onclick = function() {
        $("div").text("<p>我是添加的html段落</p>");
      }
      btn[3].onclick = function() {
        console.log( $("div").text());
      }
      btn[4].onclick = function() {
        $("input").val("我使用了val方法");
      }
      btn[5].onclick = function() {
        console.log( $("input").val());
      }      
    });
</script>
</body>

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章