jQuery基礎教程

神膘護體小月半發表於2018-10-12

jQuery基礎教程

jQuery語法

  • 基礎語法:$(selector).action()

    • 美元符號定義jQuery
    • 選擇符查詢和查詢HTML元素
    • jQuery的action執行對元素的操作

jQuery選擇器

  • 元素選擇器

    • $(“p”)選擇頁面上的<p>元素
  • #id選擇器

    • $(“#test”)選擇頁面上有id=”test”屬性的元素
  • .class選擇器

    • $(“.test”)選擇頁面上有class=“test”屬性的元素
  • 其他

    • $(“*”)選擇所有元素
    • $(this)選取當前HTML元素
    • $(“p.intro”)選取class為intro的<p>元素
    • $(“p:first”)選取第一個<p> 元素
    • &dollar;(“ul li:first”)選取第一個 <ul> 元素的第一個 <li> 元素
    • &dollar;(“ul li:first-child”)選取每個 <ul> 元素的第一個 <li> 元素
    • &dollar;(“[href]”)選取帶有 href 屬性的元素
    • &dollar;(“a[target=`blank`]”)選取所有 target 屬性值等於 “blank” 的 <a> 元素
    • &dollar;(“a[target!=`blank`]”)選取所有 target 屬性值不等於 “blank” 的 <a> 元素
    • &dollar;(“:button”)選取所有 type=”button” 的 <input> 元素 和 <button> 元素
    • &dollar;(“tr:even”)選取偶數位置的 <tr> 元素
    • &dollar;(“tr:odd”)選取奇數位置的 <tr> 元素

jQuery事件

  • 滑鼠事件

    • click點選

      $("p").click(function(){
          alert("段落被點選了。");
      });
    • dbclick雙擊

      $("p").dblclick(function(){
          alert("這個段落被雙擊。");
      });
    • mouseenter滑鼠移入

      $("p").mouseenter(function(){
          $("p").css("background-color","yellow");
      });
    • mouseleave滑鼠移出

      $("p").mouseleave(function(){
          $("p").css("background-color","gray");
      });
  • 鍵盤事件

    • keypress按下

      $("input").keypress(function(){
          $("span").text(i+=1);
      });
    • keydown按下的過程

      $("input").keydown(function(){
          $("input").css("background-color","yellow");
      });
    • keyup鍵盤松開

      $("input").keyup(function(){
          $("input").css("background-color","pink");
      });
    • hover懸停

      $("p").hover(function(){
          $("p").css("background-color","yellow");
      },function(){
          $("p").css("background-color","pink");
      });
  • 表單事件

    • submit提交

      $("form").submit(function(){
          alert("提交");
      });
    • change文字內容變化

      $("input").change(function(){
          alert("文字已被修改");
      });
    • focus獲取焦點

      $("input").focus(function(){
          $("span").css("display","inline").fadeOut(2000);
      });
    • blur失去焦點

      $("input").blur(function(){
          alert("輸入框失去了焦點");
      });
  • 文件視窗事件

    • load載入(在jQuery1.8中已被廢棄)

      $("img").load(function(){
          alert("圖片已載入");
      });
    • resize視窗調整大小

      $(window).resize(function(){
          $(`span`).text(x+=1);
      });
    • scroll滾動指定元素

      $("div").scroll(function(){
          $("span").text(x+=1);
      });
    • unload離開頁面、點選某個離開的連結、鍵入新的URL、使用前進或後退按鈕、關閉瀏覽器視窗、重新載入頁面(在jQuery1.8中已被廢棄)

      $(window).unload(function(){
          alert("Goodbye!");
      });

jQuery效果

jQuery隱藏/顯示

  • hide隱藏

    • $(selector).hide(speed,callback)
    $("#hide").click(function(){
      $("p").hide();
    });
    $("button").click(function(){
      $("p").hide(1000);
    });
  • show顯示

    • $(selector).show(speed,callback)
    $("#show").click(function(){
      $("p").show();
    });
  • toogle切換狀態

    • $(selector).toggle(speed,callback);
    $("button").click(function(){
      $("p").toggle();
    });

jQuery淡入淡出

  • fadeIn淡入已隱藏的元素

    • $(selector).fadeIn(speed,callback);
    $("button").click(function(){
      $("#div1").fadeIn();
      $("#div2").fadeIn("slow");
      $("#div3").fadeIn(3000);
    });
  • fadeOut淡出可見的元素

    • $(selector).fadeOut(speed,callback);
    $("button").click(function(){
      $("#div1").fadeOut();
      $("#div2").fadeOut("slow");
      $("#div3").fadeOut(3000);
    });
  • fadeToggle切換淡入淡出

    • $(selector).fadeToggle(speed,callback);
    $("button").click(function(){
      $("#div1").fadeToggle();
      $("#div2").fadeToggle("slow");
      $("#div3").fadeToggle(3000);
    });
  • fadeTo允許漸變為給定的不透明度

    • $(selector).fadeTo(speed,opacity,callback);
    $("button").click(function(){
      $("#div1").fadeTo("slow",0.15);
      $("#div2").fadeTo("slow",0.4);
      $("#div3").fadeTo("slow",0.7);
    });

jQuery滑動

  • slideDown向下滑動

    • $(selector).slideDown(speed,callback);
    $("#flip").click(function(){
      $("#panel").slideDown();
    });
  • slideUp向上滑動

    • $(selector).slideUp(speed,callback);
    $("#flip").click(function(){
      $("#panel").slideUp();
    });
  • slideToggle切換滑動效果

    • $(selector).slideToggle(speed,callback);
    $("#flip").click(function(){
      $("#panel").slideToggle();
    });

jQuery動畫

  • animate

    • $(selector).animate({params},speed,callback)

      $("button").click(function(){
        $("div").animate({left:`250px`});
      });
    • 操作多個屬性

      $("button").click(function(){
        $("div").animate({
          left:`250px`,
          opacity:`0.5`,
          height:`150px`,
          width:`150px`
        });
      });
    • 使用相對值

      $("button").click(function(){
        $("div").animate({
          left:`250px`,
          height:`+=150px`,
          width:`+=150px`
        });
      });
    • 使用預定義的值

      $("button").click(function(){
        $("div").animate({
          height:`toggle`
        });
      });
    • 使用佇列功能

      $("button").click(function(){
        var div=$("div");
        div.animate({height:`300px`,opacity:`0.4`},"slow");
        div.animate({width:`300px`,opacity:`0.8`},"slow");
        div.animate({height:`100px`,opacity:`0.4`},"slow");
        div.animate({width:`100px`,opacity:`0.8`},"slow");
      });
      
      $("button").click(function(){
        var div=$("div");
        div.animate({left:`100px`},"slow");
        div.animate({fontSize:`3em`},"slow");
      });

jQuery停止動畫

  • stop

    • $(selector).stop(stopAll,goToEnd)

      $("#stop").click(function(){
        $("#panel").stop();
      });

jQuery Callback

$("button").click(function(){
$("p").hide("slow",function(){
  alert("段落現在被隱藏了");
});
});
//以下例項沒有回撥函式,警告框會在隱藏效果完成前彈出
$("button").click(function(){
$("p").hide(1000);
alert("段落現在被隱藏了");
});

jQuery鏈

$("#p1").css("color","red").slideUp(2000).slideDown(2000);

jQuery HTML

jQuery捕獲

  • text()設定或返回所選元素的文字內容

    $("#btn1").click(function(){
      alert("Text: " + $("#test").text());
    });
  • html()設定或返回所選元素的內容(包括HTML標記)

    $("#btn2").click(function(){
      alert("HTML: " + $("#test").html());
    });
  • val()設定或返回表單欄位的值

    $("#btn1").click(function(){
      alert("值為: " + $("#test").val());
    });
  • attr()設定或改變屬性值

    $("button").click(function(){
      alert($("#runoob").attr("href"));
    });

jQuery設定

  • text()設定或返回所選元素的文字內容

    $("#btn1").click(function(){
        $("#test1").text("Hello world!");
    });
    
    $("#btn1").click(function(){
        $("#test1").text(function(i,origText){
            return "舊文字: " + origText + " 新文字: Hello world! (index: " + i + ")"; 
        });
    });
  • html()設定或返回所選元素的內容(包括HTML標記)

    $("#btn2").click(function(){
        $("#test2").html("<b>Hello world!</b>");
    });
    
    $("#btn2").click(function(){
        $("#test2").html(function(i,origText){
            return "舊 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; 
        });
    });
  • val()設定或返回表單欄位的值

    $("#btn3").click(function(){
        $("#test3").val("RUNOOB");
    });
  • attr()設定或改變屬性值

    $("button").click(function(){
      $("#runoob").attr("href","http://www.runoob.com/jquery");
    });
    
    $("button").click(function(){
        $("#runoob").attr({
            "href" : "http://www.runoob.com/jquery",
            "title" : "jQuery 教程"
        });
    });

jQuery新增元素

  • append()在被選元素的結尾插入內容

    $("p").append("追加文字");
  • prepend()在被選元素的開頭插入內容

    $("p").prepend("在開頭追加文字");
    
    function appendText()
    {
        var txt1="<p>文字。</p>";              // 使用 HTML 標籤建立文字
        var txt2=$("<p></p>").text("文字。");  // 使用 jQuery 建立文字
        var txt3=document.createElement("p");
        txt3.innerHTML="文字。";               // 使用 DOM 建立文字 text with DOM
        $("body").append(txt1,txt2,txt3);        // 追加新元素
    }
  • after()在被選元素之後插入內容

    $("img").after("在後面新增文字");
  • before()在被選元素之前插入內容

    $("img").before("在前面新增文字");
    
    function afterText()
    {
        var txt1="<b>I </b>";                    // 使用 HTML 建立元素
        var txt2=$("<i></i>").text("love ");     // 使用 jQuery 建立元素
        var txt3=document.createElement("big");  // 使用 DOM 建立元素
        txt3.innerHTML="jQuery!";
        $("img").after(txt1,txt2,txt3);          // 在圖片後新增文字
    }

jQuery刪除元素

  • remove()刪除被選元素及其子元素

    $("#div1").remove();
    
    $("p").remove(".italic");
  • empty()從被選元素中刪除子元素

    $("#div1").empty();

jQuery CSS類

  • addClass()向被選元素新增一個或多個類

    $("button").click(function(){
      $("h1,h2,p").addClass("blue");
      $("div").addClass("important");
    });
    
    $("button").click(function(){
      $("body div:first").addClass("important blue");
    });
  • removeClass()從被選元素刪除一個或多個類

    $("button").click(function(){
      $("h1,h2,p").removeClass("blue");
    });
  • toggleClass()對被選元素進行新增/刪除類的切換操作

    $("button").click(function(){
      $("h1,h2,p").toggleClass("blue");
    });
  • css()設定或返回樣式屬性

    $("p").css("background-color");

jQuery css()方法

  • 返回CSS屬性

    • css(“propertyname”);

      $("p").css("background-color");
  • 設定CSS屬性

    • css(“propertyname”,”value”);

      $("p").css("background-color","yellow");
  • 設定多個CSS屬性

    • css({“propertyname“:”value“,”propertyname“:”value“,…});

      $("p").css({"background-color":"yellow","font-size":"200%"});

jQuery尺寸

  • width()設定或返回元素的寬度(不包括內邊距、邊框或外邊距)

    $("button").click(function(){
      var txt="";
      txt+="div 的寬度是: " + $("#div1").width() + "</br>";
      txt+="div 的高度是: " + $("#div1").height();
      $("#div1").html(txt);
    });
  • height()設定或返回元素的高度(不包括內邊距、邊框或外邊距)

    $("button").click(function(){
      var txt="";
      txt+="div 的寬度是: " + $("#div1").width() + "</br>";
      txt+="div 的高度是: " + $("#div1").height();
      $("#div1").html(txt);
    });
  • innerWidth()返回元素的寬度(包括內邊距)

    $("button").click(function(){
      var txt="";
      txt+="div 寬度,包含內邊距: " + $("#div1").innerWidth() + "</br>";
        txt+="div 高度,包含內邊距: " + $("#div1").innerHeight();
      $("#div1").html(txt);
    });
  • innerHeight()返回元素的高度(包括內邊距)

    $("button").click(function(){
      var txt="";
      txt+="div 寬度,包含內邊距: " + $("#div1").innerWidth() + "</br>";
        txt+="div 高度,包含內邊距: " + $("#div1").innerHeight();
      $("#div1").html(txt);
    });
  • outerWidth()返回元素的寬度(包括內邊距和邊框)

    $("button").click(function(){
      var txt="";
      txt+="div 寬度,包含內邊距和邊框: " + $("#div1").outerWidth() + "</br>";
      txt+="div 高度,包含內邊距和邊框: " + $("#div1").outerHeight();
      $("#div1").html(txt);
    });
  • outerHeight()返回元素的高度(包括內邊距和邊框)

    $("button").click(function(){
      var txt="";
      txt+="div 寬度,包含內邊距和邊框: " + $("#div1").outerWidth() + "</br>";
      txt+="div 高度,包含內邊距和邊框: " + $("#div1").outerHeight();
      $("#div1").html(txt);
    });

jQuery遍歷

jQuery祖先

  • parent()被選中元素的直接父元素

    $(document).ready(function(){
      $("span").parent();
    });
  • parents()被選中元素的所有祖先元素

    $(document).ready(function(){
      $("span").parents();
    });
    
    $(document).ready(function(){
      $("span").parents("ul");
    });
  • parentsUntil()介於兩個給定元素之間的所有祖先元素

    $(document).ready(function(){
      $("span").parentsUntil("div");
    });

jQuery後代

  • children()被選元素的所有直接子元素

    $(document).ready(function(){
      $("div").children();
    });
    
    $(document).ready(function(){
      $("div").children("p.1");
    });
  • find()被選元素的後臺元素,一路向下直到最後一個後代

    $(document).ready(function(){
      $("div").find("span");
    });
    
    $(document).ready(function(){
      $("div").find("*");
    });

jQuery同胞

  • siblings()被選元素的所有同胞元素

    $(document).ready(function(){
      $("h2").siblings();
    });
    
    $(document).ready(function(){
      $("h2").siblings("p");
    });
  • next()被選元素的下一個同胞元素

    $(document).ready(function(){
      $("h2").next();
    });
  • nextAll()被選元素所有跟隨的同胞元素

    $(document).ready(function(){
      $("h2").nextAll();
    });
  • nextUntil()介於兩個給定引數之間的所有跟隨的同胞元素

    $(document).ready(function(){
      $("h2").nextUntil("h6");
    });
  • prev()被選元素的前一個同胞元素

    $(document).ready(function(){
      $("h2").prev();
    });
  • prevAll()被選元素所有前面的同胞元素

    $(document).ready(function(){
      $("h2").prevAll();
    });
  • prevUntil()介於兩個給定引數之間的所有前面的同胞元素

    $(document).ready(function(){
      $("h2").prevUntil("h6");
    });

JQuery過濾

  • first()被選元素的首個元素

    $(document).ready(function(){
      $("div p").first();
    });
  • last()被選元素的最後一個元素

    $(document).ready(function(){
      $("div p").last();
    });
  • eq()被選元素中帶有指定索引號的元素

    $(document).ready(function(){
      $("p").eq(1);
    });
  • filter()根據給定標準刪除不匹配元素,返回匹配元素

    $(document).ready(function(){
      $("p").filter(".url");
    });
  • not()返回不匹配元素

    $(document).ready(function(){
      $("p").not(".url");
    });

jQuery Ajax

  • load()從伺服器載入資料,將返回元素放入被選元素中

    • $(selector).load(URL,data,callback);

      $("#div1").load("demo_test.txt");
      
      $("#div1").load("demo_test.txt #p1");
      
      $("button").click(function(){
        $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
          if(statusTxt=="success")
            alert("外部內容載入成功!");
          if(statusTxt=="error")
            alert("Error: "+xhr.status+": "+xhr.statusText);
        });
      });
  • get()

    • $.get(URL,callback);

      $("button").click(function(){
        $.get("demo_test.php",function(data,status){
          alert("資料: " + data + "
      狀態: " + status);
        });
      });
  • post()

    • $.post(URL,data,callback);

      $("button").click(function(){
          $.post("/try/ajax/demo_test_post.php",
          {
              name:"菜鳥教程",
              url:"http://www.runoob.com"
          },
              function(data,status){
              alert("資料: 
      " + data + "
      狀態: " + status);
          });
      });

jQuery其他

  • noConflict()會釋放對 $ 識別符號的控制,這樣其他指令碼就可以使用它了

    $.noConflict();
    jQuery(document).ready(function(){
      jQuery("button").click(function(){
        jQuery("p").text("jQuery 仍然在工作!");
      });
    });
    
    var jq = $.noConflict();
    jq(document).ready(function(){
      jq("button").click(function(){
        jq("p").text("jQuery 仍然在工作!");
      });
    });
    
    $.noConflict();
    jQuery(document).ready(function($){
      $("button").click(function(){
        $("p").text("jQuery 仍然在工作!");
      });
    });

相關文章