0618第43天-jQuery1.11.3-day02

jQuery: 它是一個開源的Ajax框架,也是學javaEE必需要掌握的框架。
           由於它是目前企業中用到得最多的一個框架.
-- jQuery歷史:
  2006年8月:第一個版本.
  2015年4月28日:V1.11.3.
-- 它的官方網站: http://www.jquery.com
   V1.xxx.xx : 支持全部瀏覽器.
   V2.xxx.xx : 不支持msie6,7,8. msie9+: html5.
   V1.xxx.xx: 
   1.9.0以前版本:下載一個js文件.
   1.9.0以後版本: 下載兩個js文件.
   下載哪些文件:
    jquery-1.11.3.js     (源碼)
    jquery-1.11.3.min.js (源碼壓縮後的)
    jquery-migrate-1.2.1.js (源碼) 遷移插件.
    jquery-migrate-1.2.1.min.js (源碼壓縮後的).
    學習時用:
    jquery-1.11.3.js 
    jquery-migrate-1.2.1.js
    實際項目開發:
    jquery-1.11.3.min.js
    jquery-migrate-1.2.1.min.js
-- 這個項目的開發宗旨:
   write less, do more: 寫更少,作更多.
-- 學習Ajax框架的好處:
   1. 它能夠幫咱們解決js跨瀏覽器兼容問題.
   2. 簡化dom編程.
   3. 簡化異步請求.
   4. 它提供了一批好用工具的方法.
-- 市面上用到得Ajax框架:
   1. 重量級(界面組件):extjs、dojo.
   2. 輕量級(沒有界面組件): jquery、prototype.
      jquery-easyui
1、jQuery入門:
    第一步:在html頁面上引入jquery兩個js文件.
    <script type="text/javascript" src="jquery-1.11.3.js"></script>
    <script type="text/javascript" src="jquery-migrate-1.2.1.js"></script>
    第二步:監聽文檔是否是加載完 window.onload.
       $(window).ready(function(){
        alert("第一種方式");
       });
       $(this).ready(function(){
        alert("第二種方式");
       });
       $(document).ready(function(){
        alert("第三種方式");
       });
        
       $(function(){
        alert("第四種方式");
       });
    第三步:查詢dom元素.
       $  === jQuery
       window.jQuery = window.$ = jQuery;
    第四步:對dom元素操做.
2、核心部分:
    1. jQuery(selector, [context]) : 核心函數.
        核心函數調用返回得是jQuery對象,這個jQuery對象就封裝了查詢到得dom元素.
    對jQuery對象作操做,實際上就是對它查詢到得dom元素作操做.
       -- selector : 選擇器(是jQuery規定的查詢字符串).
       -- context: 上下文(也是就是查詢範圍)。默認爲document.(當前html文檔).
   2. $("selector").length: 獲取jQuery對象中查詢到得dom元素的個數. 
   3. $("selector").size(): 獲取jQuery對象中查詢到得dom元素的個數. 
   4. $("selector").each() : 迭代jQuery對象中查詢到得dom元素。
      $("selector").each(function(i, item){
         // i: 索引號
     // this === item : dom元素
      });
   5. $("selector").selector: 獲取你調用jQuery核心函數傳進去的第一個參數.
   6. $("selector").context: 獲取你調用jQuery核心函數傳進去的第二個參數.
   7. $("selector").get(i): 從jQuery對象中根據索引號取指定dom元素.
      $("selector").get(): 從jQuery對象中取指定dom元素,返回一個dom元素數組(Array).
   8. 從jQuery對象中取dom元素:
      a. 第一種方式:
        $("selector").get(i).
      b. 第二種方式:
         $("selector").get()[i].
      c. 第三種方式:
         $("selector")[i].
      d. 第四種方式:
         $("selector").toArray()[i]. 
   9. 把dom元素轉換成jQuery對象.
      var obj = $(dom元素);
3、選擇器(查詢字符串)
    1. $("#html元素的id屬性值"): $("#div1").
    2. $("html元素的標籤名"): $("div") $("input").
    3. $(".html元素的class屬性值"): $(".myClass1").
    4. 選擇器組合:
       $("#html元素的id屬性值,html元素的標籤名,.html元素的class屬性值");
    5. $("selector1 selector2") : 查詢父元素中全部的子元素(不是父子關係的查詢).
    6. $("selector1 > selector2") : 查詢父元素中的直接子元素(父子關係的查詢).
       
    7. $("selector1 + selector2") : 查詢相鄰的後面的一個元素.
    8. $("selector1 ~ selector2") : 查詢相鄰的後面的全部的指定元素.
    9. $("selector:first") : 查詢後取第一個.
    10. $("selector:last") : 查詢後取最後一個.
    11. $("selector:eq(i)") : 查詢後根據索引號取指定的.
    12. $("selector:not(selector)"): 查詢後不包含指定的索引號對應的dom元素.
    13. 屬性選擇器:
        a. $("html元素的標籤名[屬性名]"). $("div[id]")
    b. $("html元素的標籤名[屬性名=屬性值]"). $("div[id='div1']")
    c. $("html元素的標籤名[屬性名^=屬性值]"). $("div[id^='di']")
    d. $("html元素的標籤名[屬性名$=屬性值]"). $("div[id$='v1']")
    e. $("html元素的標籤名[屬性名*=屬性值]"). $("div[id*='i']")
    f. $("html元素的標籤名[屬性名!=屬性值]"). $("div[id!='div1']")
    屬性選擇器組合:
    $(html元素的標籤名[屬性名][屬性名=屬性值][屬性名^=屬性值]...")
    14. $("selector:checked"): 把選中的checkbox、radio查詢出來.
         $("input[type='checkbox']:checked");
     $("input[type='radio']:checked");
    15. $("selector:selected"): 把選中的option查詢出來.
         $("select > option:selected");
4、操做屬性:
    1. 添加屬性值:
       $("selector").attr("屬性名", "屬性值") 
                    .attr("屬性名", "屬性值");
       $("selector").attr({"屬性名":"屬性值","屬性名": "屬性值"});
       $("selector").prop("屬性名", "屬性值")
                    .prop("屬性名", "屬性值");
       $("selector").prop({"屬性名":"屬性值","屬性名": "屬性值"});
    2. 獲取屬性值:
       $("selector").attr("屬性名");
       $("selector").prop("屬性名");
    3. 刪除屬性:
       $("selector").removeAttr("屬性名");
    
5、操做class: 
    1. 添加class:
       $("selector").addClass("class名稱1 class名稱2");
    2. 刪除class:
       $("selector").removeClass("class名稱1 class名稱2"); // 刪除指定class
       $("selector").removeClass(); // 刪除所有class
    3. 獲取class:
       $("selector").attr("class");
    4. class開關:
       $("selector").toggleClass("class名稱1 class名稱2");//對指定class作開關操做.
6、操做文本: 
    1. 添加文本
       $("selector").html("html格式文本|普通文本");
       $("selector").text("普通文本");
    2. 獲取文本
       $("selector").html();
       $("selector").text();
    3. 刪除文本
       $("selector").html("");
       $("selector").text("");
       
7、操做value: 
    1. 設置value
       $("selector").val("值");
       $("selector").attr("value","值");
       $("selector").prop("value","值");
       $("selector").get(0).value = "值";
       $("selector").get()[0].value = "值";
       $("selector")[0].value = "值";
       $("selector").toArray()[0].value = "值";
    2. 獲取value
       $("selector").val();
       $("selector").attr("value");
       $("selector").prop("value");
       $("selector").get(0).value;
       $("selector").get()[0].value;
       $("selector")[0].value;
       $("selector").toArray()[0].value;
    3. 刪除value
       $("selector").val("");
       $("selector").attr("value","");
       $("selector").prop("value","");
       $("selector").get(0).value = "";
       $("selector").get()[0].value = "";
       $("selector")[0].value = "";
       $("selector").toArray()[0].value = "";
8、操做css(style屬性):
    1. 設置css
       $("selector").css("樣式名", "樣式值");
       $("selector").css({"樣式名": "樣式值", "樣式名": "樣式值"});
    2. 獲取css值
       $("selector").css("樣式名");
    3. 刪除css
        $("selector").css("樣式名", ""); // 刪除指定的
    $("selector").removeAttr("style"); // 刪除所有
    4. 設置寬度、獲取寬度.
       $("selector").width("值");
       $("selector").width();
    5. 設置高度、獲取高度.
       $("selector").height("值");
       $("selector").height();
9、文檔處理:
    
    /** ############### 往目標元素裏面添加子元素  ################# **/
    1. $("selector").append("html格式的字符串"); // 往目標元素裏面最後面添加子元素.
    2. $("html格式的字符串").appendTo("selector"); // 把子元素追加到目標元素裏面最後面.
    3. $("selector").prepend("html格式的字符串"); // 往目標元素裏面最前面添加子元素.
    4. $("html格式的字符串").prependTo("selector"); // 把子元素追加到目標元素裏面最前面.
    /** ############### 往目標元素外面添加相鄰的元素 ################# **/
    5. $("selector").after("html格式的字符串"); // 往目標元素外面最後面添加相鄰元素.
    6. $("html格式的字符串").insertAfter("selector"); // 把元素追加到目標元素外面最後面.
    7. $("selector").before("html格式的字符串"); // 往目標元素外面最前面添加相鄰元素.
    8. $("html格式的字符串").insertBefore("selector"); // 把元素追加到目標元素外面最前面.
    
    9. $("selector").empty(); // 清空全部的子元素.
    10. $("selector").remove(); // 刪除全部的元素.
       
 
10、篩選(查詢後再一次過濾):
    -- 實際是把選擇器改爲了方法.
    1. $("selector").eq(i) : 查詢後再根據索引取.
    2. $("selector").first() : 取第一個
    3. $("selector").last() : 取最後一個
    4. $("selector").filter("seletor"): 查詢後把須要的過濾出來.
    5. $("selector").map() : 把查詢到的jQuery對象轉化成另一個jQuery對象.
                             該jQuery對象中封裝的元素再也不是dom元素,而是map方法
                  中回調函數的返回值.
        var obj1 = obj.map(function(i, item){  // obj1封裝得是map方法回調函數的返回值
        //alert(i + "==" + item);
        return item.name + "=" + item.value;
    });
    alert(obj1.get().join("&"));
    6. $("selector").not("selecotr") : 查詢後不包含哪個.
    7. $("selector").children() : 查詢全部直接的子元素.
    8. $("selector").find("selector"): 查詢指定的子元素.
           $("ul").find("div").css("color", "red");
11、動畫效果:
    1. 顯示與隱藏:
       a. $("selector").show(1000, function(){}); // 顯示
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       b. $("selector").hide(1000, function(){}); // 隱藏
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       c. $("selector").toggle(1000, function(){}); // 顯示隱藏開關
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
    2. 滑上與滑下:
       a. $("selector").slideDown(1000, function(){}); // 顯示(滑下)
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       b. $("selector").slideUp(1000, function(){}); // 隱藏(滑上)
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       c. $("selector").slideToggle(1000, function(){}); // 顯示隱藏(滑下滑上)開關
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       
    3. 淡入與淡出:
       a. $("selector").fadeOut(1000, function(){}); // 顯示(淡入)
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       b. $("selector").fadeIn(1000, function(){}); // 隱藏(淡出)
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
       c. $("selector").fadeToggle(1000, function(){}); // 顯示隱藏(淡入淡出)開關
           -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:動畫完成後須要回調的函數.
    
   4. 淡入到指定的透明度:
      $("selector").fadeTo(1000, [0-1], function(){});
       -- 第一個參數:執行動畫毫秒數.
       -- 第二個參數:透明度(0-1).
       -- 第三個參數:動畫完成後須要回調的函數.
   
12、事件綁定:
   1. 用on()方法綁定事件.
      $("selector").on("click mouseover", {name:'admin'}, function(event){
        // event.type : 獲取事件類型.
        // event.data : 獲取事件數據.
      });
      -- 第一個參數:事件名(事件名把前面的on去掉).
      -- 第二個參數:數據.
      -- 第三個參數:事件處理函數.
      $("selector").on({
      "click" : function(){
      },
          "mouseover" : function(){
      }
      });
      
    2. 用bind()方法綁定事件.
      $("selector").bind("click mouseover", {name:'admin'}, function(event){
        // event.type : 獲取事件類型.
        // event.data : 獲取事件數據.
      });
      -- 第一個參數:事件名(事件名把前面的on去掉).
      -- 第二個參數:數據.
      -- 第三個參數:事件處理函數.
      $("selector").bind({
      "click" : function(){
      },
          "mouseover" : function(){
      }
      });
    3. 主動觸發事件.
       a. $("selector").trigger("click");
       b. $("selector").triggerHandler("click");
    4. hover集成了onmouseover與onmouseout.
       $("selector").hover(
      function(){},  // onmouseover
      function(){}   // onmouseout
       );
    5. 按點擊次數綁定事件:
       $("selector").toggle(
      function(){ // 點擊第一次
      }, 
      function(){ // 點擊第二次
      }, 
      function(){ // 點擊第三次
      }
        );
    6. 特殊方法綁定相應的事件:
       onclick  --> click();
       onblur   --> blur();
       onchange --> change();
       onxxx    --> xxx();
     
十3、事件對象:
      -- event.type : 獲取事件類型.
      -- event.data : 獲取事件數據.
十4、工具方法:
      1. $.each() : 數組迭代方法
         $.each([], function(i, item){
         // i : 索引號
         // this === item : 數組元素
     });
      2. $.extend({},{}) : 兩個json對象進行合併,把後面的json對象合併到前面的json對象中.
      
      3. $.grep() : 數組過濾返回一個新數組.
         var newArr = $.grep([], function(item, i){
         // i : 索引號
         // item : 數組元素
             return true: 保留  false: 不保留
     });
      4. $.map(): 把一個數組轉化成一個新的數組.
         var newArr = $.map([], function(item, i){
         // i : 索引號
         // item : 數組元素
         return "值"; // 返回值存入新的數組
     });
      5. $.merge([],[]): 兩個數組合並,返回一個新數組.
      
      6. $.parseJSON(): 把json字符串解析成json對象.
         var str = '{"name" : "李剛", "age" : 50}';
     -- key : 必須用雙引號
     -- value: 若是是字符串也必須用雙引號.
      7. $.trim() : 去掉字符串先後的空格.
      8. $.param() : 把json對象轉化成get請求的字符串key=value&key=value
         
g
十5、異步請求(ajax)
   1. $.ajax(url, settings) : 核心方法.
      -- 第一個參數:請求URL.
      -- 第二個參數:settings發送異步請求須要設置的參數.{}json對象.
      $.ajax({
       url : "請求URL",
       type : "get|post|put|delete", // 請求方式
       data : "key=value&key=value|{key:value,key:value}|[{key:value,key:value},..]", // 請求參數
           dataType : "text|html|xml|json|script|jsonp", // 指定服務器響應回來的數據類型.
           async : true|false, // 異步|同步
       success : function(data){ // 請求成功
          // data : 響應數據
       },
       error : function(){ // 請求失敗
         
       }
      });
    2. $.get() : 只發送get請求  
       $.get(url, data, function(data, status){
          // status(狀態碼): success 、error
      // data : 響應數據
       }, dataType);
       -- 第一個參數:請求URL
       -- 第二個參數:請求參數
       -- 第三個參數:回調函數
       -- 第四個參數:服務器端響應回來的數據類型
    3. $.post() : 只發送post請求
       $.post(url, data, function(data, status){
          // status(狀態碼): success 、error
      // data : 響應數據
       }, dataType);
       -- 第一個參數:請求URL
       -- 第二個參數:請求參數
       -- 第三個參數:回調函數
       -- 第四個參數:服務器端響應回來的數據類型
    4. $.getJSON(): 發送get請求響應數據爲json.
       $.getJSON(url, data, function(data, status){
          // status(狀態碼): success 、error
      // data : 響應數據
       });
       -- 第一個參數:請求URL
       -- 第二個參數:請求參數
       -- 第三個參數:回調函數
   5.  $.getScript() : 發送get請求響應數據爲script.
        $.getScript(url, function(data, status){
          // status(狀態碼): success 、error
      // data : 響應數據
       });
       -- 第一個參數:請求URL
       -- 第二個參數:回調函數
   6. $("selector").load()發送get請求響應數據爲html.(加載公共的頁面)
      $("selector").load(url, function(data, status){
          // status(狀態碼): success 、error
      // data : 響應數據
       });
       -- 第一個參數:請求URL
       -- 第二個參數:回調函數
           // 發送異步請 求開始
    $("#loading").ajaxStart(function(){
        $(this).show();
    });
    // 發送異步請 求結束
    $("#loading").ajaxStop(function(){
        $(this).hide();
    });
異步請求示例:
1. 省份城市聯級下拉列表(異步請求,響應數據爲xml) $.ajax()
2. 省份城市聯級下拉列表(異步請求,響應數據爲json) $.ajax()
3. $.get()發送請求
4. $.post()發送請求
5. $.getScript()
6. $.getJSON()
7. $("selector").load()
      
       
     
      


相關文章
相關標籤/搜索