<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # jQuery簡介 jQuery是一款優秀的javaScript庫(框架),該框架憑借簡潔的語法和跨平臺的兼容性,極大的簡化了開發 人員對HTML文檔,DOM,事件以及Ajax的操作。 主旨口號:寫的更少, 干的更多(以更少的代碼,實現更多的功能) 作者:John Resig(約翰·雷西格) John Resig(約翰·雷西格),1984年5月8日出生于美國紐約。 個人著作: 精通JAVASCRIPT 以及 JAVASCRIPT忍者的秘密 工作經驗:先后于Mozilla、可汗學院擔任開發工程師。 jQuery框架版本相關介紹開源許可協議:MIT許可證 官方網站: [http://jquery.com/](http://jquery.com/) 中文API網站: [http://jquery.cuishifeng.cn/](http://jquery.cuishifeng.cn/) 托管倉庫: [https://github.com/jquery/jquery](https://github.com/jquery/jquery) 版本情況: JQuery目前分成1.x版、2.x版和3.x版本,從 2.0.0開始不再支持IE 6/7/8,2.0.0版本之前通過jQuery Migrate plugin與先前版本保持兼容。 最新版本 :3.2.1 # jQuery的優點 * 輕量級 * 免費開源 * 完善的文檔 * 豐富的插件支持 * 完善的Ajax功能 * 不會污染頂級變量 * 強大的選擇?功能 * 出色的DOM操作封裝 * 出色的瀏覽?兼容性 * 可靠的事件處理機制 * 隱式迭代和鏈式編程操作 # jQuery的基本功能 ## Query 查找 ### **1. 訪問和操作DOM元素** &emsp; &emsp;說明:使用jQuery庫,可以很方便地獲取和修改頁面中的某元素無論是刪除、移動、復制元素,jQuery都 提供了一整套方便、快捷的方法,既減少了代碼的編寫,又大大提高了用戶對頁面的體驗度。 **方法示例**: **append()** ———— 向每個匹配的元素內部后面追加內容。 **appendTo** ————把內容在每個匹配的元素外部后面插入。 **prepend()** ————向每個匹配的元素內部前面追加內容。 **prependTo** ————把內容在每個匹配的元素外部前面插入。 **empty()** —————刪除匹配的元素集合中所有的子節點。 **remove()** ————從DOM中刪除所有匹配的元素。 &emsp; &emsp;這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。但**除了這個元素本身得以保留之外,其他的比如綁定的事件,附加的數據等都會被移除。** **detach()**—————從DOM中刪除所有匹配的元素。 &emsp; &emsp;這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。與remove()不同的是,**除了這個元素本身得以保留之外,所有綁定的事件、附加的數據等都會保留下來。** html() text()等 例: html和css代碼 ``` <button>點擊刪除</button> <button>點擊增加</button> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> ``` JavaScript代碼 ``` <script> //給 li 綁定事件 $("li").click(function () { alert(1) }); //點擊按鈕,在ul里面的前面添加一個li $("button").click(function () { //創建節點 var newtag = $("<li>列表項</li>");//創建節點 //分別在內部和外部后面增加節點 $("ul").append(newtag); //在ul內部后面追加新節點 newtag.appendTo($("ul")); //把新節點追加到ul里面的后面 //分別在內部和外部前面面增加節點 $("ul").prepend(newtag); //在ul內部的前面追加新節點 newtag.prependTo($("ul")); //把新節點追加到ul里面的前面 //刪除內容 $("button:eq(0)").click(function () { $("ul").remove(); // 把選中的元素在頁面中刪除,但在jQuery對象會保留,綁定的事件和附加的數據會被移除 $("ul").empty(); //把選中元素里面的內容清空 lis.detach(); //把選中的元素在頁面中刪除,但在jQuery對象會保留,綁定的事件和附加的數據會保留下來 }); //以下用來測試恢復的節點說綁定的事件和附加的數據是否保存 $("button:eq(1)").click(function () { $("ul").append(lis) }); }); </script> ``` ### **2. 控制頁面的CSS樣式** &emsp; &emsp;說明:使用jQuery框架,可以幫助我們方便快捷的來操作CSS樣式,且jQuery已經完成了瀏覽?兼容性處理。 **方法示例:** **css()**————————添加或修改匹配元素的樣式屬性。 **addClass()**—————為每個匹配的元素添加指定的類名。 **toggleClass()**————切換類,若存在就刪除一個類,若不存在就添加一個類 **hasClass()**—————檢查當前的元素是否含有某個特定的類,如果有,則返回true。 **removeClass()**———從所有匹配的元素中刪除全部或者指定的類。 html和css代碼 ``` <html> <style> .hezi { background: tan; } .box { width: 200px; height: 200px; border: 1px solid #000; } </style> <script src="jquery-3.4.1.js"></script> <body> <button>獲取類屬性</button> <button>增加類</button> <button>刪除類</button> <button>切換類</button> <button>檢索類</button> <div class="hezi">盒子</div> </body> </html> ``` JavaScript代碼 ``` <script> $("button").eq(0).click(function () { //添加或修改類屬性 $(".hezi").css('font-size','30px'); }); $("button").eq(1).click(function () { //增加box類 $(".hezi").addClass("box"); }); $("button").eq(2).click(function () { //如果不指定刪除類名,就會刪除全部類名 $(".hezi").removeClass("box"); }); $("button").eq(3).click(function () { //如果不指定刪除類名,就會刪除全部類名 if ( $(".box").hasClass("hezi") ){ alert('201314'); } }); $("button").eq(4).click(function () { //切換box類,如果有這個類就刪掉,沒有就添加 $(".hezi").toggleClass("box"); }); </script> ``` ### **3. 完善的Ajax網絡請求** &emsp; &emsp;說明: **方法示例**: **ajax()** ————通過 HTTP 請求加載遠程數據。 **get()** ————取得其中一個匹配的元素。 **post()** ————通過遠程 HTTP POST 請求載入信息。 html和css代碼 ``` <p>段落1</p> <p>段落2</p> ``` JavaScript代碼 ``` <script> var aa =$('p').get(0); console.log(aa); //輸出結果:<p>段落1</p> var bb =$('p').get(); console.log(bb); </script> ``` ### **4. 頁面標簽事件處理** &emsp; &emsp;說明: **方法示例**: **on()**———————— 在選擇元素上**綁定**一個或多個事件的事件處理函數。 **off()** ————————在選擇元素上**移除**一個或多個事件的事件處理函數。 **click()** ———————觸發每一個匹配元素的click事件。 **mouseenter()** ————當鼠標指針穿過元素時,會發生 mouseenter 事件。該事件大多數時候會與mouseleave 事件一起使用。 **hover()**———————一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法。 html和css代碼 ``` <style> div{ width: 100px; height: 100px; background: skyblue; border: 1px solid #000; margin: 10px; } .box1{ width: 200px; height: 200px; background: skyblue; } </style> <body> <button class="btn2">撤銷變色</button> <button class="btn">點擊</button> <div class="box">盒子</div> </body> ``` JavaScript代碼 ``` ~~~ <script> //新建節點 var oBOX = $('<div class="obox">盒子2</div>'); var oBtn = $('<button class="btn1">變色和增高</button>'); //注冊點擊事件 $('.btn').click(function () { $('.box').css('width','300px'); $('.box').after(oBOX); oBtn.insertAfter($('.btn'));//在 .btn 后面插入 oBtn }); //事件委托, $('body').on('click','.btn1',function () { $('.box').css('background','pink'); console.log('變色'); }); $('body').on('mouseenter','.btn1',function () { $('.box').css('height','300px'); console.log('變高'); }); $('body').on('mouseleave','.btn1',function () { $('.box').css('height','100px'); console.log('恢復'); }); //點擊 .btn2 移除 .btn1 的 click 事件,mouseenter 事件不受影響 $('.btn2').on('click',function () { console.log('禁止變色按鈕'); $('body').off('click','.btn1');// }); //鼠標移入事件 $('body').on('mouseenter','.box',function () { $('.box').css({ width:'300px', height:200 }); }); //鼠標移出事件 $('body').on('mouseleave','.box',function () { $('.box').css({ width:'100px', height:100 }); }); //鼠標進入事件 $('.btn').hover(function () { console.log('鼠標進入'); $(this).css('background','pink'); $('.obox').css('font-size','30px'); },function () { console.log('鼠標離開'); $(this).css('background','#ccc'); $('.obox').css('font-size','16px'); }); </script> ``` ### **5. 整套的動畫特效實現** &emsp; &emsp;說明: **方法示例**: **show()** —————顯示隱藏的匹配元素。 **hide()** —————隱藏顯示的元素 **slideDown()** ——通過高度變化(向下增大)來動態地顯示所有匹配的元素,在顯示完成后可選地觸發一個回調函數。 **slideUp()** ————通過高度變化(向上減小)來動態地隱藏所有匹配的元素,在隱藏完成后可選地觸發一個回調函數。 **slideToggle()**———通過高度變化來切換所有匹配元素的可見性,并在切換完成后可選地觸發一個回調函數。 **animate()** ———— 用于創建自定義動畫的函數。 html和css代碼 ``` <style> div{ width: 200px; height: 200px; background: skyblue; } </style> ~~~ <body> <button>滑動隱藏</button> <button>滑動顯示</button> <button>滑動切換</button> <button>隱藏</button> <button>顯示</button> <button>動畫</button> <div></div> </body> ~~~ ``` JavaScript代碼 ``` <script> $(function () { //滑動隱藏 $('button:eq(0)').click(function () { $('div').slideUp(); }); //滑動顯示 $('button:eq(1)').click(function () { $('div').slideDown(); }); //滑動切換 $('button:eq(2)').click(function () { $('div').slideToggle(); }); //隱藏 $('button:eq(3)').click(function () { $('div').hide(); }); //顯示 $('button:eq(4)').click(function () { $('div').show(); }); //動畫 $('button:eq(5)').click(function () { $('div').animate({ width: '500px', height: 400, background: 'pink' },1500); }); }) </script> ``` ### **6. 好用的工具方法和強大的插件支持** &emsp; &emsp;說明: **方法示例:** **extend()** ———用一個或多個其他對象來擴展一個對象,返回被擴展的對象。 **each()** ———— 以每一個匹配的元素作為上下文來執行一個函數。 **map()** ————將一組元素轉換成其他數組(不論是否是元素數組) ***** 1. extend() JavaScript代碼 ``` var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options); //結果: settings == { validate: true, limit: 5, name: "bar" } ``` 2. each() html和css代碼 ``` <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> ``` JavaScript代碼 ``` <script> //寫法一 $("p").each(function (index,ele) { //輸出函數的參數 console.log(arguments); //console.log(index); //console.log(ele); //console.log($(ele)); //dom對象 // ele.innerText = index + "哈哈" //jquery對象 $(ele).text("你好世界"+index); }); //寫法二 var arr = ["你好",2,3]; $.each(arr,function (index,ele) { //index是數組的索引值,ele是每個元素 console.log(ele); }); var json = {name:"王龍",age:15,marry:true}; $.each(json,function (key,val) { //key是對象的屬性,val是對象的屬性值 console.log(key); }) </script> ``` 3. map() html和css代碼 ``` <p> 我是內容 1</p> <p> 我是內容 2</p> <p> 我是內容 3</p> <p> 我是內容 4</p> <p> 我是內容 5</p> ``` JavaScript代碼 ``` <script> //把上面五個p里面的文字放在一個數組里面 //each遍歷 var arr = []; $("p").each(function (index,ele) { arr.push($(ele).text()) }); //console.log(arr); //遍歷并且返回一個數組 var array = $("p").map(function (index,ele) { return $(ele).text(); }); console.log(array); </script> ``` # jQuery體驗 ## jQuery框架的使用步驟 1. 下載jQuery框架在本地的電腦上(官網提供框架的下載鏈接,兩個版本可供選擇) 2. 創建項目,在項目的頁面中使用script引入jQuery框架 3. 使用jQuery框架來實現相關的功能 ## jQuery框架的代碼風格: 1. 美元符號起始 &emsp;&emsp;在jQuery框架中,不管是頁面元素的選擇、內置的功能函數,都使用美元符號來起始的,而這個美元符號,其實就是jQuery框架當中最重要且獨有的對象: jQuery對象。 2. 鏈式編程操作 &emsp;&emsp;jQuery框架中為我們提供了鏈式編程操作,鏈式編程的特點中,幾乎每個jQuery方法執行完畢后都會把當前正在操作的對象作為返回值返回,如果我們需要對某個標簽執行多個操作,那么使用鏈式編程可以讓代碼更短,更簡潔 如: `$("#demoId").addClass("cur").siblings().removeClass("cur");` ## jQuery框架使用準備 ### jQuery框架和JavaScript加載模式對比 ``` //原生的JavaScript文檔加載,先寫的會覆蓋后寫的; <script> window.onload = function () { console.log("window.onload——1") }; window.onload = function () { console.log("window.onload——2") } </script> //打印結果: window.onload--2 //jQuery的文檔加載,不會相互覆蓋 <script src="jquery-3.2.1.js"></script> <script> $(document).ready(function () { console.log("ready——1") }); $(document).ready(function () { console.log("ready——2") }) ; //方式二,簡寫一 $(function () { console.log("ready——3") }); //方式三,簡寫二 $().ready(function () { console.log("ready——4") }); //打印結果:ready——1 // ready——2 // ready——3 // ready——4 </script> ``` ### 兩種加載模式的區別: 1. 執行時機不同 window.onload方法需要等所有的資源(CSS\\JS\\圖片等)都加載完畢后再執行函數中的代碼。 jQuery框架的ready方法只等DOM文檔加載完畢后立即執行包裹代碼。 2. 執行次數不同 window.onload方法,只會執行一次,后面的會把前面的覆蓋, jQuery框架的ready方法,有幾次執行幾次,不存在覆蓋的問題。 3. jQuery存在多種簡寫方式 完整的編寫方式:$(document).ready(function(){}) 簡寫方式:`$().ready(function()) $(function())` ## jQuery框架沖突解決 ``` <script> //解決沖突方法一、 var jQ=$.noConflict(); // conflict 沖突, noConflict() 不沖突,運行這個函數將變量$的控制權讓渡給第一個實現它的那個庫,釋放 jQuery 對 $ 變量的控制。 //解決沖突方法二、 console.log(jQuery('div')); //通過jQuery()直接獲取 var $='今天天氣很好'; console.log($); console.log(jQ); </script> ``` # jQuery對象和DOM對象的相互轉換 DOM對象:每個HTML頁面都是一個 DOM對象( Document Object Model ,文本對象模型),通過傳統的 JavaScript方法訪問頁面中的元素,就是訪問 DOM 對象。 jQuery對象:在 jQuery框架中,通過本身自帶的方法獲取頁面元素的對象,稱為 jQuery 對象 ; html和css代碼 ``` <body> <div>1</div> <div>2</div> </bod ``` JavaScript代碼 ``` <script> window.onload = function () { //通過原生js方法獲取到的odiv這個對象是原生dom對象 var odiv = document.getElementsByTagName("div")[0]; console.log(odiv); odiv.style.width = 400 + "px"; odiv.style.height = 400 + "px"; odiv.style.backgroundColor = "skyblue"; //通過jQuery方法來獲取元素,是jQuery對象,不能直接使用原生js的屬性和方法 console.log( $("div") ); //$("div").css("width","400px").css("height","400px").css("background","pink") // jQuery對象轉原生dom對象 //方法一 console.log( $("div")[0] ); //方法二 console.log( $("div").get(1) ); //怎么把原生dom對象轉化成jQuery //直接使用$選擇這個對象 console.log( $(odiv) ); } </script> ``` # jQuery特點總結 * jQuery省略了取數據模塊,可以直接通過$()選擇元素,并且支持 css里面所有選擇器 * jQuery允許對群體數據進行直接控制 * jQuery里面所有的事件都省略了on * jQuery封裝了很多常用的方法,可以直接調用 html和css代碼 ``` <body> <button><span>按鈕1</span></button> <button>按鈕2</button> <button>按鈕3</button> <button>按鈕4</button> <button>按鈕5</button> <button>按鈕6</button> <button>按鈕7</button> <button>按鈕8</button> <button>按鈕9</button> <button>按鈕10</button> </body> ``` JavaScript ``` <script> //原生 js 寫法 window.onload = function () { //獲取btns var btns = document.getElementsByTagName("button"); for (var i = 0; i < btns.length; i++) { btns[i].onclick = function () { alert( this.innerText ); } } }; // jQuery 寫法 $(function () { $("button").click(function () { //console.log( $(this) ) //alert( this.innerText ) alert( $(this).text() ); }); }); </script> ``` # jQuery框架的CSS方法 **使用原生的方式來設置標簽的樣式** ```<body> <div>我是div標簽</div> <button id="btnID">按鈕</button> <script> window.onload = function () { var oBtn = document.getElementById("btnID"); oBtn.onclick = function () { var oDiv = document.getElementsByTagName("div")[0]; oDiv.style.height = "50px"; oDiv.style.width = "200px"; oDiv.style.background = "red"; } </script> </body> ``` **使用jQuery中的css方法來設置標簽的樣式** ``` <body> <div>我是div標簽</div> <button id="btnID">按鈕</button> <script src="jquery-3.2.1.js"></script> <script> $(function () { $("#btnID").click(function () { $("div").css("height","50px").css("width","200px").css("background","red"); }) }) </script> </body> ``` **CSS方法的語法:** 1. $("selector").css(name,value); 2. $("selector").css(name1,value).css(name2,value)...; 3. $("selector").css( { name1 : value , name2 : value}) ``` <script> $(function () { $("#btnID").click(function () { //01 CSS方法的第一種使用方式 $("div").css("height","50px"); $("div").css("width","200px"); $("div").css("background","red"); //02 CSS方法的第二種使用方式:鏈式編程 $("div").css("height","50px") .css("width","200px").css("background","red"); //03 CSS方法的第三種使用方式:傳遞樣式鍵值對的對象作為參數 $("div").css({ "height":"100px", "width":"200px", "background":"red" }) }) }) </script> ``` # jQuery操作html 1. $("selector").html(value); 修改html 2. $("selector").html(); 訪問html 3. $("selector").text(value); 修改文本內容 4. $("selector").text(); 訪問文本內容 ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="jquery-3.4.1.js"></script> <script> $("button:eq(0)").click(function(){ //修改html $("div").html("<h1>標題1<h1><p>段落</p>") }); $("button:eq(1)").click(function(){ //訪問html $("div").html(); }); $("button:eq(2)").click(function(){ //訪問內本內容 $("div").text(); }); </script> </head> <body> <button>修改</button> <button>訪問全部</button> <button>訪問文字</button> <div> </div> </body> </html> ``` 1 1 1 1 1 1 1 1 1 1
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看