一.簡介
二.尋找元素
1.選擇器
1.1 基本選擇器
$(「*」):選擇全部標籤
$(「#idname」):選擇id=idname的標籤
$(「#classname」):選擇class=classname的標籤
$(「#TagName」):選擇Tag=TagName的標籤
$(「.classname,p,div」):選擇class=classname,p及div的全部標籤
該部分代碼塊以下:css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p id="p1">這是P標籤1</p> <div id="d1">welcome to jQuery <div class="outer">這是div標籤外圍1 <div class="inner">這是div標籤內部</div> <p>這是P標籤2</p> </div> </div> <span class="outer">這是span標籤</span> </body> <script src="jquery-3.3.1.js"></script> <script> // $("p").css("color","red"); //對全部的P標籤進行操做(tagname) // $("*").css("color","green"); //對全部的標籤進行操做(*) // $("#d1").css("color","yellow"); //對id="d1"的標籤進行操做(#idname) $(".outer,#p1,span").css("color","pink"); //對classname="outer",id="p1",tagname="span"的全部標籤進行操做 </script> </html>
1.2 層級選擇器
$(".inner p"):calssname="inner"標籤內的全部p標籤 $(".inner>p"):calssname="inner"標籤內的全部p標籤
$(".inner+p"):calssname="inner"標籤下方相鄰的p標籤
$(".inner~p"):calssname="inner"標籤下方全部的p標籤(僅要求下方便可,能夠不相鄰)
該部分實例代碼塊以下:html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p id="p1">這是P標籤1</p> <div id="d1">welcome to jQuery <div class="outer">這是div標籤外圍1 <p>這是P標籤2</p> <div class="inner">這是div標籤內部 <p>這是P標籤31</p> <p>這是P標籤32</p> </div> <p>這是P標籤4</p> <span class="outer">這是span標籤1</span> <p>這是P標籤5</p> </div> <p>這是P標籤5</p> </div> <span class="outer">這是span標籤</span> </body> <script src="jquery-3.3.1.js"></script> <script> // $(".inner p").css("color","red") //對calssname="inner"標籤下的全部p標籤進行操做 // $(".inner>p").css("color","red") //對calssname="inner"標籤下的全部p標籤進行操做 // $(".inner+p").css("color","red") //對calssname="inner"標籤下方相鄰的p標籤進行操做 $(".inner~p").css("color","red") //對calssname="inner"標籤下方全部的p標籤(僅要求下方便可,能夠不相鄰)進行操做 </script> </html>
1.3 基本篩選器
$(ele:frist):第1個ele標籤
$(ele:eq(n)):第N個ele標籤
$(ele:last):最後1個ele標籤
$("li:even"):對排序爲基數的li標籤進行操做
$("li:odd"):對排序爲偶數的li標籤進行操做
$("li:gt(2)"):對大於第二個(不包含第2個)的li標籤(排序從0開始)進行操做
$("li:lt(2)"):對小於第二個(不包含第2個)的li標籤(排序從0開始)進行操做
該部分代碼塊以下:jquery
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul type="circle"> <li>第一個li標籤</li> <li>第二個li標籤</li> <li>第三個li標籤</li> <li>第四個li標籤</li> <li>第五個li標籤</li> </ul> <script src="jquery-3.3.1.js"></script> <script> // $("li:first").css("color","red") //對第一個li標籤進行操做 // $("li:eq(3)").css("color","green") //對第三個li標籤進行操做 // $("li:last").css("color","pink") //對最後一個li標籤進行操做 // $("li:even").css("color","green") //對排序爲基數的li標籤進行操做 // $("li:odd").css("color","red") //對排序爲偶數的li標籤進行操做 // $("li:gt(2)").css("color","red") //對大於第二個(不包含第2個)的li標籤(排序從0開始)進行操做 // $("li:lt(2)").css("color","green") //對小於第二個(不包含第2個)的li標籤(排序從0開始)進行操做 </script> </body> </html>
1.4屬性選擇器
$(「[class=’classname’][id=’idname’]」):選擇class=’classname’且id=’idname’的標籤進行操做;
代碼塊以下:瀏覽器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul type="circle"> <li id="l1" class="l">第一個li標籤</li> <li id="l2" class="l">第二個li標籤</li> <li>第三個li標籤</li> <li>第四個li標籤</li> <li>第五個li標籤</li> </ul> <script src="jquery-3.3.1.js"></script> <script> $("[class='l'][id='l2']").css("color","red") //對class='l'且id='l2'的標籤進行操做 </script> </body> </html>
1.5 表單選擇器
$(「:type」):其中type的值爲text/checkbox/radio的任意一種,對type=’text’的input標籤進行操做;
代碼塊以下:app
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text"> 111 <input type="checkbox"> 222 <input type="radio"> 333 <input type="text"> 444 <script src="jquery-3.3.1.js"></script> <script> $(":text").css("width","300px") $(":checkbox").css("width","200px") $(":radio").css("height","50px") </script> </body> </html>
2.篩選器
常見的篩選器以下:
$(".outer p").hasClass("pp") //判斷class='outer'下的class='pp'的p標籤是否存在,返回結果爲布爾值
$(".outer").eq(2).css("color","red")//操做第二個class='outer'的標籤
$(".outer").children("p").css("color","green") //class='outer'內的第一個p標籤
$(".outer").find("p").css("color","red") //class='outer'內的全部p標籤
//next向下
$(".inner1").next("p").css("color","red") //class='inner1'下方(與其同級別)其與其相鄰的第1個p標籤
$(".inner1").nextAll("p").css("color","red") //class='inner1'下方(與其同級別)的全部p標籤
$(".inner1").nextUntil(".p53").css("color","red") //class='inner1'下方(與其同級別)的直到class='p53'(不包含p53)的全部p標籤
//prev向上
$(".inner2").prev().css("color","red") //class='inner2'上方(與其同級別)其與其相鄰的第1個標籤
$(".inner2").prevAll().css("color","red") //class='inner2'上方(與其同級別)的全部標籤
$(".inner2").prevUntil("#u1").css("color","red") //class='inner2'上方(與其同級別)的直到id='u1'(不包含u1)的全部p標籤
//parent向外
$(".pp").parent().css("color","red") //對class='pp'的第一級父級標籤進行操做
$(".pp").parents().css("color","red") //對class='pp'的全部父級標籤進行操做,默認直到HTML的最外層html標籤
$(".pp").parentsUntil("#d1").css("color","red") //對class='pp'的直到id='d1'(不包含d1這一層)的全部父級標籤進行操做
//兄弟標籤
$(".pp").siblings().css("color","red") //對class='pp'全部兄弟標籤(即:與.pp同級的全部標籤)進行操做
代碼塊以下:ide
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p id="p1">這是P標籤1</p> <div id="d1">welcome to jQuery <div class="outer">這是div標籤外圍1 <p>這是P標籤2</p> <div class="inner1">這是div標籤內部 <p class="pp">這是P標籤31</p> <p>這是P標籤32</p> </div> <u style="display: block" id="u1">這是下劃線</u> <span class="outer">這是span標籤1</span> <p>這是P標籤4</p> <span class="outer2">這是span標籤2</span> <p>這是P標籤51</p> <div class="inner2">這是div標籤內部2 <p>這是P標籤321</p> <p>這是P標籤322</p> </div> <p>這是P標籤52</p> <p class="p53">這是P標籤53</p> <p>這是P標籤54</p> </div> <p>這是P標籤6</p> </div> <span class="outer">這是span標籤</span> </body> <script src="jquery-3.3.1.js"></script> <script> // $(".outer p").hasClass("pp") //判斷class='outer'下的class='pp'的p標籤是否存在,返回結果爲布爾值 // $(".outer").eq(2).css("color","red") //操做第二個class='outer'的標籤 // $(".outer").children("p").css("color","green") //class='outer'內的第一個p標籤 // $(".outer").find("p").css("color","red") //class='outer'內的全部p標籤 //next向下 // $(".inner1").next("p").css("color","red") //class='inner1'下方(與其同級別)其與其相鄰的第1個p標籤 // $(".inner1").nextAll("p").css("color","red") //class='inner1'下方(與其同級別)的全部p標籤 // $(".inner1").nextUntil(".p53").css("color","red") //class='inner1'下方(與其同級別)的直到class='p53'(不包含p53)的全部p標籤 //prev向上 // $(".inner2").prev().css("color","red") //class='inner2'上方(與其同級別)其與其相鄰的第1個標籤 // $(".inner2").prevAll().css("color","red") //class='inner2'上方(與其同級別)的全部標籤 // $(".inner2").prevUntil("#u1").css("color","red") //class='inner2'上方(與其同級別)的直到id='u1'(不包含u1)的全部p標籤 //parent向外 // $(".pp").parent().css("color","red") //對class='pp'的第一級父級標籤進行操做 // $(".pp").parents().css("color","red") //對class='pp'的全部父級標籤進行操做,默認直到HTML的最外層html標籤 // $(".pp").parentsUntil("#d1").css("color","red") //對class='pp'的直到id='d1'(不包含d1這一層)的全部父級標籤進行操做 //兄弟標籤 // $(".pp").siblings().css("color","red") //對class='pp'全部兄弟標籤(即:與.pp同級的全部標籤)進行操做 </script> </html>
三.jQuery其餘操做
1.屬性
$(":checkbox:first").attr("custome") //attr()一個值是進行查詢屬性值
$(":checkbox:first").attr("myclass","test") //attr()一個值是進行查詢屬性值,兩個值是進行賦值
$(":checkbox:first").prop("custome") //prop()一個值是進行查詢屬性值
$(":checkbox:first").prop("class","myclss") //prop()一個值是進行查詢屬性值,兩個值是進行賦值
實例代碼塊:函數
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <input type="checkbox" checked="checked">男 <input type="checkbox" custome="myself">女 </div> <script src="jquery-3.3.1.js"></script> <script> //attr方法既可操做元素自帶的屬性又可操做元素自定義的屬性 // console.log($(":checkbox:first").attr("custome")) // console.log($(":checkbox:last").attr("custome")) // console.log($(":checkbox:first").attr("myclass","test")) //attr()一個值是進行查詢屬性值,兩個值是進行賦值 //prop方法只能操做元素自帶的屬性 // console.log($(":checkbox:first").prop("custome")) // console.log($(":checkbox:last").prop("custome")) // console.log($(":checkbox:first").prop("class","myclss")) //prop()一個值是進行查詢屬性值,兩個值是進行賦值 // console.log($(":checkbox:first").hasClass("myclss")) //attr方法既可操做元素自帶的屬性又可操做元素自定義的屬性 // console.log($(":checkbox:first").removeAttr("custome")) // console.log($(":checkbox:last").removeAttr("custome")) //prop方法只能操做元素自帶的屬性 // console.log($(":checkbox:first").removeProp("custome")) // console.log($(":checkbox:last").removeProp("custome")) </script> </body> </html>
2 操做class的值
$(":checkbox:first").addClass(classname);//addClass(classname) 增長class
$(":checkbox:first").removeClass(classname);//removeClass(classname) 增長class
示例代碼以下:動畫
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <input type="checkbox" checked="checked" class="input1">男 <input type="checkbox" custome="myself">女 </div> <script src="jquery-3.3.1.js"></script> <script> $(":checkbox:first").addClass("input2");//addClass(classname) 增長class console.log($(":checkbox:first").hasClass("input2")) $(":checkbox:first").removeClass("input2");//removeClass(classname) 增長class console.log($(":checkbox:first").hasClass("input2")) </script> </body> </html>
3.操做HTML代碼/文本/值
$(":checkbox:first").html() //獲取html的代碼(不帶自身標籤,可是包含div的文本及子標籤下的全部html內容)
$(".d1").text() //獲取text的內容(不帶div標籤,包含div及子標籤下的全部文本)
$(".d1").html("newhtml")) //設置(更改整個div下的)html的代碼(不帶div標籤,可是帶div下的全部子標籤)
$(".d1").text("newtxet")) //設置(更改)整個div下的text的代碼(不帶div標籤,可是帶div下的全部子標籤)
$(":text").val() //獲取input的value值。注意:只能用於獲取再帶value屬性的值
$(":text").val("newvalue") //獲取input的value值。注意:只能用於獲取再帶value屬性的值
實例代碼塊以下:this
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <div class="d1"> 這個div標籤 <p value="p">保險業務</p> <input type="text" value="input"> </div> </div> <script src="jquery-3.3.1.js"></script> <script> // $(":checkbox:first").html() //獲取html的代碼(不帶自身標籤,可是包含div的文本及子標籤下的全部html內容) // console.log($(".d1").html()) // $(":checkbox:first").text() //獲取html的代碼(帶自身標籤) // console.log($(".d1").text()) //獲取text的內容(不帶div標籤,包含div及子標籤下的全部文本) // $(".d1").html("newhtml")) //設置(更改整個div下的)html的代碼(不帶div標籤,可是帶div下的全部子標籤) // console.log($(".d1").html("<h1>hhh</h1>")) // $(".d1").text("newtxet")) //設置(更改)整個div下的text的代碼(不帶div標籤,可是帶div下的全部子標籤) // console.log($(".d1").text("<h1>hhh</h1>")) // $(":text").val() //獲取input的value值。注意:只能用於獲取再帶value屬性的值 // console.log($(":text").val()) // console.log($("p").val()) //由於p標籤中不是自帶的value屬性,因此沒法經過val()方法獲取對應的value值 // $(":text").val("newvalue") //獲取input的value值。注意:只能用於獲取再帶value屬性的值 $(":text").val("newinput") //設置input標籤的value值爲newinput console.log($(":text").val()) </script> </body> </html>
4.Css樣式操做
$("#d1").css("color","red") //單個css樣式設置
//$("#d1").css({"color":"red","background-color":"pink"}) //多個css樣式設置
實例代碼以下:spa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="d1"> <div class="d1"> 這個div標籤 <p value="p">保險業務</p> <input type="text" value="input"> </div> </div> <script src="jquery-3.3.1.js"></script> <script> $("#d1").css("color","red") //單個css樣式設置 //$("#d1").css({"color":"red","background-color":"pink"}) //多個css樣式設置 </script> </body> </html>
5.jQuery循環方式
三種循環方法,1.js的for循環語法;2.$.each(callbackobj,function(形參x,形參2)),其中形參1的值是遍歷對象的索引,形參2的值是索引對應的值;3.$.elements.each(),其中$.elements表示元素集合;
實例代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <p>p標籤1</p> <p>p標籤2</p> <p>p標籤3</p> </div> </body> <script src="jquery-3.3.1.js"></script> <script> arr=["aaa",222,"ccc"] //方式一,js的for循環方式 for(i=0;i<arr.length;i++){ $("p").eq(i).html(arr[i]); } //方式二,jQuery的$.each()函數,其中each(callbackobj,function(x,y)),callbackobj爲要遍歷的對象,function(x,y)函數爲固定格式,形參x,y分別表示遍歷對象的索引和索引對應的值 $.each(arr,function (a,b) { console.log(a); console.log(b); }) //jQuery的$.elements.each()函數 $("p").each(function () { // $(this) //集合循環的每一個對象 console.log($(this).html()) }) </script> </html>
5.1循環的一個應用(全選/反選/取消)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> table{ background-color: lemonchiffon; text-align: center; } td{ width: 100px; } </style> </head> <body> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td><input class="check" type="checkbox"></td> <td>玫瑰</td> <td>杜鵑</td> </tr> <tr> <td><input class="check" type="checkbox"></td> <td>白菜</td> <td>西紅柿</td> </tr> <tr> <td > <input class="check" type="checkbox"></td> <td>蘋果</td> <td>香梨</td> </tr> <tr> <td><button onclick="selectAll()">全選</button></td> <td><button onclick="reserve()">反選</button></td> <td><button onclick="cancel()" >取消</button></td> </tr> </table> <script src="jquery-3.3.1.js"></script> <script> function selectAll(){ $(".check").each(function () { $(".check").prop("checked",true) }) } function reserve() { $(".check").each(function () { if($(this).prop("checked")){ $(this).prop("checked",false) } else { $(this).prop("checked",false) } }) } function cancel(){ $(".check").each(function () { $(".check").prop("checked",false) }) } </script> </body> </html>
四.jQuery文檔處理
1.內部文檔插入
append()的用法,做用:在父標籤下添加一個子標籤
appendTo()的用法,做用:將子標籤添加到父標籤下
prepend(),用法:將標籤添加到指定標籤的前面
prepend(),用法:將標籤添加到指定標籤的前面
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="inner"> <p>這個是P標籤</p> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //定義一個變量,並建立一個標籤賦值給該變量 var $eleh1= $("<h1>這是append的h1標籤</h1>") //append()的用法,做用:在父標籤下添加一個子標籤 $(".inner").append($eleh1); var $eleh2= $("<h2>這是appendTo的h2標籤</h2>") //appendTo()的用法,做用:將子標籤添加到父標籤下 $eleh2.appendTo(".inner") var $eleh3 = $("<h3>這是prepend的h3標籤</h3>") //prepend(),用法:將標籤添加到指定標籤的前面 $(".inner").prepend($eleh3) var $eleh4 = $("<h4>這是prependTo的h4標籤</h4>") //prepend(),用法:將標籤添加到指定標籤的前面 $eleh4.prependTo(".inner") </script> </html>
2.外部插入
after()用法:例如:A.after(B),將標籤B插入到A標籤以後
insertAfter()用法:例如:B.insertAfter(A),將標籤B插入到A標籤以後
before()用法:例如:A.before(B),將標籤B插入到A標籤以前
insertAfter()用法:例如:B.insertAfter(A),將標籤B插入到A標籤以前
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="inner"> <p>這個是P標籤</p> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> var $eleh1= $("<h1>這是after的h1標籤</h1>") //after()用法:例如:A.after(B),將標籤B插入到A標籤以後 $(".inner").after($eleh1) var $eleh2= $("<h1>這是insertAfter的h1標籤</h1>") //insertAfter()用法:例如:B.insertAfter(A),將標籤B插入到A標籤以後 $eleh2.insertAfter(".inner") var $eleh3= $("<h3>這是before的h1標籤</h3>") //before()用法:例如:A.before(B),將標籤B插入到A標籤以前 $(".inner").before($eleh3) var $eleh4= $("<h1>這是insertAfter的h4標籤</h1>") //insertAfter()用法:例如:B.insertAfter(A),將標籤B插入到A標籤以前 $eleh4.insertBefore(".inner") </script> </html>
3.替換
replaceWith()用法:例如:B.replaceWith(A),將標籤B替換成標籤A
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="inner"> <p>這個是P標籤</p> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //替換 var $eleh4= $("<h1>這是insertAfter的h4標籤</h1>") //replaceWith()用法:例如:B.replaceWith(A),將標籤B替換成標籤A $("p").replaceWith($eleh4) </script> </html>
4.清空/刪除
$("p").empty(); //只會清空標籤中的內容,不會刪除標籤自己
$("p").remove() //會刪除整個標籤自己(包含標籤內部的內容)
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="inner"> <p>這個是P標籤</p> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //清空、刪除 $("p").empty(); //只會清空標籤中的內容,不會刪除標籤自己 $("p").remove() //會刪除整個標籤自己(包含標籤內部的內容) </script> </html>
5.複製
$("p").clone() //clone()用法:A.clone()複製一次A標籤
五.Css操做
1.Css樣式操做
1.1$("#d1").css("color","red") //單個css樣式設置
1.2$("#d1").css({"color":"red","background-color":"pink"}) //多個css樣式設置
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="d1"> <div class="d1"> 這個div標籤 <p value="p">保險業務</p> <input type="text" value="input"> </div> </div> <script src="jquery-3.3.1.js"></script> <script> $("#d1").css("color","red") //單個css樣式設置 //$("#d1").css({"color":"red","background-color":"pink"}) //多個css樣式設置 </script> </body> </html>
2.位置
2.1 offset()是相對於視口(瀏覽器窗口)的距離
2.2 position()是相對於進行了定位的父級容器的距離,全部標籤的默認定位均是瀏覽器視口
示例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0px; padding: 0px; color: red; } .d1{ width: 200px; height: 200px; background-color: aquamarine; } .d2{ width: 100px; height: 100px; background-color: fuchsia; } .inner{ position: absolute; } </style> </head> <body> <div class="outer"> <div class="d1"></div> <div class="inner"> <div class="d2"></div> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //offset()是相對於視口(瀏覽器窗口)的距離 //$(".d1").html("top="+$(".d1").offset().top+";left="+$(".d1").offset().left) //相對於視口(瀏覽器窗口)的距離 // $(".d2").html("top="+$(".d2").offset().top+";left="+$(".d2").offset().left) //相對於視口(瀏覽器窗口)的距離 //position()是相對於進行了定位的父級容器的距離,全部標籤的默認定位均是瀏覽器視口 //$(".d1").html("top="+$(".d1").position().top+";left="+$(".d1").position().left) //d1父級是outer,outer未進行定位因此默認選用瀏覽器來進行計算位置 //$(".d2").html("top="+$(".d2").position().top+";left="+$(".d2").position().left) //d2父類是inner,inner進行絕對定位,因此d2的位置是相對於inner來進行計算的 </script> </html>
2.3 $(window).scrollTop():滾動條滾動離頂部的距離
$(window).scrollTop(num):設置滾動條滾動離頂部的距離等於num(單位px)
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0px; padding: 0px; } .d1,.d2{ width: 100%; height: 800px; } .d1{ width: 2000px; overflow: scroll; background-color: lavenderblush; } .d2{ background-color: darkgoldenrod; } .returntop{ width: 80px; height: 30px; background-color: lemonchiffon; color: indianred; text-align: center; line-height: 30px; font-size: 10px; position: fixed; bottom: 20px; right: 20px; } .returnleft{ width: 80px; height: 30px; background-color: lemonchiffon; color: indianred; text-align: center; line-height: 30px; font-size: 10px; position: fixed; top: 20px; right: 50px; } .hide{ display: none; } </style> </head> <body> <div> <div class="d1"> </div> <div class="returnleft hide">返回左部</div> <div class="d2"></div> <div class="returntop hide">返回頂部</div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> //window.onscroll 經過window對象的onscroll來監聽 window.onscroll = function () { if($(window).scrollTop()>500){ $(".returntop").removeClass("hide") } else if($(window).scrollTop()<=500){ $(".returntop").addClass("hide") } } //window.onscroll 經過window對象的onscroll來監聽 //注意:兩個監聽事件,之後一個時間爲主 window.onscroll = function () { if($(window).scrollLeft()>500){ console.log(">100") $(".returnleft").removeClass("hide") } else{ console.log("<=100") $(".returnleft").addClass("hide") } } $(".returntop").click(function () { $(".d1").scrollTop(0); }) $(".returnleft").click(function () { $(window).scrollLeft(0); }) </script> </html>
3.尺寸
3.1 height()/width():指內容區的高寬,不包含padding和margin區域
3.2 innerHeight()/innerHeight():指包含padding區域的高寬
3.3 outerHeight()/outerWidth():指包含padding區域的高寬
3.4 outerHeight(true)/outerWidth(true):指帶true參數則包含padding和margin區域的高寬
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0px; padding: 0px; color: red; } .d1{ width: 200px; height: 200px; background-color: aquamarine; margin: 10px; padding: 5px; } .d2{ width: 100px; height: 100px; background-color: fuchsia; } .inner{ position: absolute; } </style> </head> <body> <div class="outer"> <div class="d1"></div> <div class="inner"> <div class="d2"></div> </div> </div> </body> <script src="jquery-3.3.1.js"></script> <script> $(".d1").html("height="+$(".d1").height()+";width="+$(".d1").width()) //height()/width():指內容區的高寬,不包含padding和margin區域 $(".d1").html("innerHeight="+$(".d1").innerHeight()+";innerWidth="+$(".d1").innerWidth()) //innerHeight()/innerHeight():指包含padding區域的高寬 $(".d1").html("outerHeight="+$(".d1").outerHeight()+";outerWidth="+$(".d1").outerWidth()) //outerHeight()/outerWidth():指包含padding區域的高寬 $(".d1").html("outerHeight="+$(".d1").outerHeight(true)+";outerWidth="+$(".d1").outerWidth(true)) //outerHeight(true)/outerWidth(true):指帶true參數則包含padding和margin區域的高寬</script> </html>
六.事件
1.事件綁定方式
1.1格式:格式:$("").bind("event",function()){function body}
注意:同一個標籤綁定了前後綁定了2個事件,則按jquery代碼前後順序執行這2個事件
1.2事件解除綁定方式
格式:$("").unbind("event")
代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>aaa</li> <li class="b">bbb</li> <li>ccc</li> <li>ddd</li> </ul> </body> <script src="jquery-3.3.1.js"></script> <script> //需求:給全部的li標籤綁定點擊(click)事件,點擊後彈框提示 //格式:$("").bind("event",function()){function body} $("ul li").bind("click",function () { alert("bind click event"); }) //給第3個li標籤解除綁定事件 //格式:$("").unbind("event") $("ul li").eq(2).unbind("click") //同一個標籤綁定了前後綁定了2個事件,則按jquery代碼前後順序執行這2個事件 $("ul li").eq(3).bind("click",function () { alert("3333"); }) </script> </html>
2.事件委託
需求:給全部的li標籤綁定點擊(click)事件,點擊後彈框提示,而且點擊addli是添加一個li標籤;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>aaa</li> <li class="b">bbb</li> <li>ccc</li> <li>ddd</li> </ul> <button class="add">addli</button> </body> <script src="jquery-3.3.1.js"></script> <script> //需求:給全部的li標籤綁定點擊(click)事件,點擊後彈框提示,而且點擊addli是添加一個li標籤 $("ul li").bind("click",function () { alert("999牌感冒靈"); }) $(".add").bind("click",function () { var $ele = $("<li>"); var len = $("li").length; $ele.html(len+1); $("ul").append($ele); }) </script> </html>
此時發現,後面添加的li標籤的點擊事件再也不進行彈框提示,那麼如何解決該問題呢?
咱們使用另一種方式解決.格式:
$("").on("event",[elementsselector],[data],function()){function body}
代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>aaa</li> <li class="b">bbb</li> <li>ccc</li> <li>ddd</li> </ul> <button class="add">addli</button> </body> <script src="jquery-3.3.1.js"></script> <script> //需求:給全部的li標籤綁定點擊(click)事件,點擊後彈框提示,而且點擊addli是添加一個li標籤 // $("ul li").bind("click",function () { // alert("999牌感冒靈"); // }) //該方法,後增的li標籤點擊事件不能進行彈框提示 $(".add").bind("click",function () { var $ele = $("<li>"); var len = $("li").length; $ele.html(len+1); $("ul").append($ele); }) //此時發現,後面添加的li標籤的點擊事件再也不進行彈框提示,那麼如何解決該問題呢?咱們使用另一種方式解決 //格式:$(" ").on("event",[elementsselector],[data],function()){} $("ul").bind("click","li",function () { alert("999牌感冒靈"); }) </script> </html>
3.事件綁定與事件委託的區別
事件綁定(bind)和事件委託(on)在處理上並不相同,事件綁定是先找到要觸發事件的元素(標籤),直接進行事件綁定(也就是說事先已經拿到了全部的須要綁定的元素);而事件委託是先找到觸發事件元素的父級,至關於臨時綁定,只有當觸發時才發進行綁定(也就是說事先沒有指定哪些元素能夠觸發事件,在後期可變化)。因此,事件委託能夠實現2中的需求而事件綁定則不行。
4.事件準備
咱們知道,js代碼是加載一行執行一行,若是把JavaScript代碼放在document以前,則會發生找到元素而不能正確執行JavaScript代碼,達不到理想中的效果。在jQuery中也同樣,爲了解決該問題,JavaScript中使用了load方法,在jQuery中使用read方法。
格式1:$(document).ready(function () {
等待document加載完成才執行的代碼塊
}
格式2:$(function () {
等待document加載完成才執行的代碼塊
})
實例代碼以下:(改寫2中的代碼塊)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> //需求:給全部的li標籤綁定點擊(click)事件,點擊後彈框提示,而且點擊addli是添加一個li標籤 $(document).ready(function () { $(".add").bind("click",function () { var $ele = $("<li>"); var len = $("li").length; $ele.html(len+1); $("ul").append($ele); }) $("ul").bind("click","li",function () { alert("999牌感冒靈"); }) }) </script> </head> <body> <ul> <li>aaa</li> <li class="b">bbb</li> <li>ccc</li> <li>ddd</li> </ul> <button class="add">addli</button> </body> </html>
5.事件委託中data參數的使用
事件委託格式:
$("").on("event",[elementsselector],[data],function()){function body}
做用:將data中的參數傳給function函數使用
實例代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(document).ready(function () { data = {name:"張三",age:"22"} function showinfo(event){ alert(event.data.name+";"+event.data.age); } $("li").on("click",data,showinfo) }) </script> </head> <body> <ul> <li>aaa</li> <li class="b">bbb</li> <li>ccc</li> <li>ddd</li> </ul> <button class="add">addli</button> </body> </html>
七.jQuery動畫效果
1.切換效果
$().show(time) 效果顯示函數time單位爲毫秒,可不帶時間,不帶時間則快速展現
$().hide(time) 效果隱藏函數time單位爲毫秒,可不帶時間,不帶時間則快速隱藏
$().toggle(time) 效果切換函數time單位爲毫秒,可不帶時間,不帶時間則快速切換(切換是指當前爲顯示狀態的則變成隱藏效果,當前爲隱藏狀態的則變成顯示效果)
代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(window).ready(function () { $(".b1").click(function () { //$().show(time) 效果顯示函數time單位爲毫秒,可不帶時間,不帶時間則快速展現 $("img").show(1000); }) $(".b2").click(function () { //$().hide(time) 效果隱藏函數time單位爲毫秒,可不帶時間,不帶時間則快速隱藏 $("img").hide(1000); }) $(".b3").click(function () { //$().toggle(time) 效果切換函數time單位爲毫秒,可不帶時間,不帶時間則快速切換(切換是指當前爲顯示狀態的則變成隱藏效果,當前爲隱藏狀態的則變成顯示效果) $("img").toggle(1000); }) }) </script> </head> <body> <div> <img src="bfff64c7.jpg" title="None"> </div> <button class="b1">顯示</button> <button class="b2">隱藏</button> <button class="b3">切換</button> </body> </html>
2.滑動效果
與切換效果相似,三個對應的函數分別爲:$().slideDown();$().slideUp();$().slideToggle();
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(window).ready(function () { $(".b1").click(function () { //$().slideDown(time) 效果顯示函數time單位爲毫秒,可不帶時間,不帶時間則快速展現 $("img").slideDown(1000); }) $(".b2").click(function () { //$().slideUp(time) 效果隱藏函數time單位爲毫秒,可不帶時間,不帶時間則快速隱藏 $("img").slideUp(1000); }) $(".b3").click(function () { //$().slideToggle(time) 效果切換函數time單位爲毫秒,可不帶時間,不帶時間則快速切換(切換是指當前爲顯示狀態的則變成隱藏效果,當前爲隱藏狀態的則變成顯示效果) $("img").slideToggle(1000); }) }) </script> </head> <body> <div> <img src="bfff64c7.jpg" title="None"> </div> <button class="b1">顯示</button> <button class="b2">隱藏</button> <button class="b3">切換</button> </body> </html>
3.淡入淡出
根據更改透明度來展現或隱藏元素
$().fadeIn(time) 效果淡出(顯示,透明值爲1)函數time單位爲毫秒,可不帶時間,不帶時間則快速淡化展現
$().fadeOut(time) 效果淡入(隱藏,透明值爲0)函數time單位爲毫秒,可不帶時間,不帶時間則快速淡化隱藏
$().fadeToggle(time) 淡入淡出效果切換函數,time單位爲毫秒,可不帶時間,不帶時間則快速切換(切換是指當前爲顯示狀態的則淡化變成隱藏效果,當前爲隱藏狀態的則淡化變成顯示效果)
$().fadeTo(time,pram) 效果切換到指定效果函數,time單位爲毫秒(必須帶),pram爲設置淡入淡出最終的透明值(必須帶),(該函數是將當前狀態切換到設定的透明度效果狀態)
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(window).ready(function () { $(".b1").click(function () { //$().fadeIn(time) 效果淡出(顯示,透明值爲1)函數time單位爲毫秒,可不帶時間,不帶時間則快速淡化展現 $("img").fadeIn(1000); }) $(".b2").click(function () { //$().fadeOut(time) 效果淡入(隱藏,透明值爲0)函數time單位爲毫秒,可不帶時間,不帶時間則快速淡化隱藏 $("img").fadeOut(1000); }) $(".b3").click(function () { //$().fadeToggle(time) 淡入淡出效果切換函數,time單位爲毫秒,可不帶時間,不帶時間則快速切換(切換是指當前爲顯示狀態的則淡化變成隱藏效果,當前爲隱藏狀態的則淡化變成顯示效果) $("img").fadeToggle(1000); }) $(".b4").click(function () { //$().fadeTo(time,pram) 效果切換到指定效果函數,time單位爲毫秒(必須帶),pram爲設置淡入淡出最終的透明值(必須帶),(該函數是將當前狀態切換到設定的透明度效果狀態) $("img").fadeTo(1000,0.3); }) }) </script> </head> <body> <div> <img src="bfff64c7.jpg" title="None"> </div> <button class="b1">顯示</button> <button class="b2">隱藏</button> <button class="b3">切換</button> <button class="b4">特定切換</button> </body> </html>
4.回調函數
下列全部的function函數均爲回調函數,回調函數即爲等待執行完某函數後再去執行的函數。
$().show(time,function () {
//等待time毫秒執行完show()函數後再執行function
function body
});
$().hide(time,function () {
//等待time毫秒執行完hide()函數後再執行function
function body
});
$().toggle(time,function () {
//等待time毫秒執行完toggle()函數後再執行function
function body
});
$().slideDown(time,function () {
//等待time毫秒執行完slideDown()函數後再執行function
function body
});
$().slideUp(time,function () {
//等待time毫秒執行完slideUp()函數後再執行function
function body
});
$().slideToggle(time,function () {
//等待time毫秒執行完slideToggle()函數後再執行function
function body
});
$().fadeIn(time,function () {
//等待time毫秒執行完fadeIn()函數後再執行function
function body
});
$().fadeOut(time,function () {
//等待time毫秒執行完fadeOut()函數後再執行function
function body
});
$().fadeToggle(time,function () {
//等待time毫秒執行完fadeToggle()函數後再執行function
function body
});
$().fadeTo(time,pram,function () {
//等待time毫秒執行完fadeTo()函數後再執行function
function body
});
八.jQuery擴展方法/插件機制(自定義方法)
做用:當jQuery中的標準庫提供的方法不能達到咱們想要的效果時,咱們能夠經過擴展方法來自定義方法來讓jQuery調用已達到理想效果。
用jQuery寫本身寫插件時,最核心的兩個方法。
1.爲jQuery添加一個靜態方法,格式:$.extend(object)
實例代碼塊以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(function () { //爲jQuery添加一個靜態方法 //格式:$.extend(object) $.extend({ min:function (a,b) { //自定義的函數必須用別名的方式 return(a<b?a:b); },//注意此處用的是逗號 max:function (a,b) { //自定義的函數必須用別名的方式 return(a<b?b:a); } }) $(".p1").click(function () { alert($.min(4,78)); }) alert($.max(4,78)); }) </script> </head> <body> <div> <p class="p1">點我呀</p> </div> </body> </html>
2.爲jQuery添加一個方法,格式:$.fn.extend(object)
實例代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> <script> $(function () { //爲jQuery添加一個方法 //格式:$.fn.extend(object) $.fn.extend({ min1:function (a,b) { //自定義的函數必須用別名的方式 return(a<b?10*a:10*b); },//注意此處用的是逗號 max1:function (a,b) { //自定義的函數必須用別名的方式 return(a<b?10*b:10*a); } }) $(".p1").click(function () { alert($.fn.min1(4,78)); 使用自定義函數 }) alert($.fn.max1(4,78)); 使用自定義函數 }) </script> </head> <body> <div> <p class="p1">點我呀</p> </div> </body> </html>
九.歡迎關注做者公衆號