jQuery 基礎小結

什麼是jQuery

jQuery 是一個 JavaScript 庫 極大地簡化了 JavaScript 編程

引入方式

建議下載類庫 進行本地引入 下載地址 http://jquery.com/download/
< script type=”text/javascript” src=”../JQuery/jquery-3.3.1.js”>< /script>

JQuery 示例

<div id="d1"></div>
        <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            /*核心函數: jQuery 簡寫形式$
             * $(function) 是 $(document).ready(function(){})的簡寫形式, 表示當頁面中的DOM結構加載完畢時
             * $(選擇器) 獲取對應選擇器的元素 返回的是jquery對象
             * $(html標籤形式字符串) 創建DOM元素
             * $(html元素對象) 將原生js對象轉爲jQuery對象
             */
            $(function(){
                //jquery code
            });
            //注: 爲了避免文檔在完全加載之前運行jquery代碼,建議在ready函數中書寫jquery代碼
            /*區別window.onload:
             * 1.時機不同: onload是當所有資源(DOM,圖片,音視頻)加載完畢; 而ready是當DOM加載完畢時
             * 2.onload是原生js中的, 而ready是jquery中的方法
             * 3.onload一個頁面只能觸發一次(只能出現一次), 而ready可以同時出現多次, 都可以觸發執行
             */
            //獲取元素
            $("#d1");
            $(".d2");
            $("#list>li");
            //創建元素
            $("<div></div>");
            //原生對象轉爲jQuery對象
            //若要使用jQuery中提供的方法, 需要轉爲jQuery對象後才能調用
            $(document);
        </script>

強大的基礎選擇器

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="../JQuery/jquery-3.3.1.js"></script>
    <style media="screen">
      .item {
        width: 100px;
        height: 100px;
        background-color: red;
      }
    </style>
  </head>
  <body>
    <div class="item">1</div>
    <div class="item">2</div>
    <p>
      <ol>
        <li>Hello</li>
      </ol>
    </p>
    <p>How are you?</p>
  </body>
  <script type="text/javascript">
    // JQuery
    // 獲取元素
    // $("選擇器") 獲取和選擇器相匹配的元素
    $(".item").css("color", "white");
    // 設置多個屬性 參數是對象
    $(".item").css({
      "background-color": "green",
      "margin-left": "50px",
      "border": "1px red solid"
    })
    $(".item").css("width", function(index, oldValue) {
      console.log(index, oldValue);
      return (index + 1) * 100;
    })
    // 獲取元素屬性 只能獲取第一個
    // 設置元素屬性 是對所有的元素生效
    console.log($(".item").css("width"));
    // 修改內容
    // $("p").text("CLANNAD");
    // $("p").text(function() {
    //   return "after story";
    // });

    // 通過JQ的選擇器獲取到的是JQ對象
    // 通過原生方法獲取的是原生對象
    // JQ對象只能調用JQ的方法 原生對象只能調用原生的方法 但是JQ 可以和 JS 混編
    // 原生對象 -> JQ 對象
    var item = document.getElementsByClassName("item")[0];
    $(item).css("color", "red")
    // JQ對象 -> 原生對象
    $(".item")[1].innerHTML = "JQ轉原生"
    $(".item").get(0).innerHTML = "JQ轉原生"

    // JQ裏獲取第幾個元素 eq 獲取到的是JQ對象
    $(".item").eq(0).html("這是第一個")

    // 破壞性操作和回到破壞性操作之前
    // end()

    // 移交$的控制權
    // jQuery(".item") 等價於 $(".item")
    // var james = jquery.noConflict();  從此以後不再使用 $ 代表 jQuery 取而代之的是 james

    //創建元素
    $("<div></div>").html("新的JQ對象").appendTo($("body"))

    //  A.append(B) A裏面添加B A是父級
    //  A.appendTo(B) 把A加到B裏面 B是父級
    // A.after(B) A後面添加B A在前面
    // A.insertAfter(B) 把A插入到B後面 B在前面

    // 刪除元素
    // remove() 刪除元素 同時清空綁定的事件
    // empty() 刪除元素內容 元素本身還在
    // detach() 刪除元素 不清空綁定事件
    $("p").filter(function(index) {
      return $("ol", this).length == 0;
    });
    // JQ對象設置屬性
    // attr 設置的屬性都會被添加到標籤上 也能讀取到標籤上的自定義屬性 prop不能!
    // prop 可以讀取到原生對象的自帶屬性和自定義屬性 attr不能
    $(".item").attr("title", "這是提示")
    $(".item").prop("title", "這是提示")
  </script>

</html>

強大的CSS樣式操作

<body>
        <input type="text" />
        <img src=""/>
        <input type="checkbox" name="" id="" checked />
        <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            /*attr("屬性名", 屬性值 | 函數) 設置元素對應屬性爲對應屬性值
             * attr("屬性名") 獲取對應屬性的值
             * 
             * prop("屬性名", 屬性值 | 函數) 設置元素對應屬性爲對應屬性值
             * prop("屬性名") 獲取對應屬性的值
             * 
             * removeAttr("屬性名")
             * removeProp("屬性名")
             */
            /*兩種方式的區別:
             * attr() 常用於操作元素的自定義屬性,也可以操作自帶屬性
             * prop() 常用於操作元素的自帶屬性
             * 當操作的是布爾值類型的屬性時,使用prop()
             */
            $(function() {
                //添加一個屬性
                $("input:eq(0)").attr("placeholder", "請輸入");
                //可同時添加多個屬性: 以對象形式設置
                $("img").attr({
                    src: "http://p3.ifengimg.com/a/2018_10/99fc62f2a0b668c_size53_w552_h552.jpg",
                    width: 300,
                    height: 400
                });
                //attr("屬性名") 獲取對應屬性的值
                console.log($("img").attr("src"));

                //參數2也可以是函數 該函數有兩個參數,分別表示下標以及對應屬性原來的值, 必須返回對應的屬性值
                $("img").attr("height", function(i, v) {
                    console.log(i,v);
                    return 300;
                });

                //添加一個屬性
                $("input:first").prop("placeholder", "=.=");
                //添加多個屬性
                $("img").prop({
                    width: 100,
                    height: 100,

                });
                //區別: 當要獲取元素的自帶屬性是布爾類型的值時, 通過attr無法正常獲取布爾值, 該場景下使用prop獲取元素布爾類型的屬性值
                console.log($(":checkbox").attr("checked"));
                console.log($(":checkbox").prop("checked"));
            });
        </script>
    </body>

更多的方便的操作請參考文檔

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