一、定義 1. 什麼是jQuery <1> jQuery由美國人John Resig創建,至今已吸引了來自世界各地的眾多 javascript高手加入其team。 <2>jQuery是繼prototype之後又一個優秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE! < ...
一、定義
1. 什麼是jQuery
<1> jQuery由美國人John Resig創建,至今已吸引了來自世界各地的眾多 javascript高手加入其team。
<2>jQuery是繼prototype之後又一個優秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!
<3>它是輕量級的js庫(壓縮後只有21k) ,這是其它的js庫所不及的,它相容CSS3,還相容各種瀏覽器
<4>jQuery是一個快速的,簡潔的javaScript庫,使用戶能更方便地處理HTMLdocuments、events、實現動畫效果,並且方便地為網站提供AJAX交互。
<5>jQuery還有一個比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。
2. 什麼是jQuery對象
jQuery 對象就是通過jQuery包裝DOM對象後產生的對象。jQuery 對象是 jQuery 獨有的. 如果一個對象是 jQuery 對象, 那麼它就可以使用 jQuery里的方法: $(“#test”).html();
$("#test").html() //意思是指:獲取ID為test的元素內的html代碼。其中html()是jQuery里的方法 // 這段代碼等同於用DOM實現代碼: document.getElementById(" test ").innerHTML; //雖然jQuery對象是包裝DOM對象後產生的,但是jQuery無法使用DOM對象的任何方法,同理DOM對象也不能使用jQuery里的方法.亂使用會報錯 //約定:如果獲取的是 jQuery 對象, 那麼要在變數前面加上$. var $variable = jQuery 對象 var variable = DOM 對象 $variable[0]:jquery對象轉為dom對象 $("#msg").html(); $("#msg")[0].innerHTML
jquery的基礎語法:$(selector).action()
二、選擇器
1. 基本選擇器
$(
"*"
) 選擇所有元素
$(
"#id"
) id選擇器
$(
".class"
) class選擇器
$(
"element"
) 標簽選擇器
$(
".class,p,div"
) 組合選擇器
2. 層級選擇器
$(
".outer div"
) 後代選擇器
$(
".outer>div"
) 子代選擇器
$(
".outer+div"
) 選擇後一個兄弟元素
$(
".outer~div"
) 選擇後面的所有兄弟元素
3. 屬性選擇器
$("[name='aaa']")
$("[name='aaa'][id='div1']") 篩選多個屬性
4. 表單選擇器
$(
":text"
) 註意只適用於input標簽
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <p>hello</p> 9 <div id="div1" class="outer" name="aaa">outer 10 <div class="inner">inner 11 <p>p2</p> 12 </div> 13 <p>p1</p> 14 </div> 15 <div>div1</div> 16 <a href="">aaa</a> 17 <div>div2</div> 18 <input type="text" value="123456"/> 19 20 <script src="js/jquery-3.4.1.js"></script> 21 <script> 22 // //基本選擇器 23 // $("*").css("color","red") 24 // $("#div1").css("color","aqua") 25 // $(".inner").css("color","beige") 26 // $("p").css("color","brown") 27 // $(".inner,p,div").css("color","black") 28 29 // //層級選擇器 30 // $(".outer div").css("color","red") 31 // $(".outer>div").css("color","red") 32 // $(".outer+div").css("color","red") 33 // $(".outer~div").css("color","red") 34 35 //屬性選擇器 36 // $("[id='div1']").css("color","red") 37 // $("[name='aaa'][id='div1']").css("color","red") //篩選多個屬性 38 39 //表單選擇器 40 $(":text").css("color","red") 41 </script> 42 </body> 43 </html>示例
三、篩選器
1. 基本篩選器
$(
"li:first"
) $("li:last")
$(
"li:eq(2)"
)
$(
"li:even"
) $("li:odd")
$(
"li:gt(1)"
) $("li:lt(1)")
2. 過濾篩選器
$(
"li"
).eq(2)
$(
"li"
).first()
3. 查找篩選器
$("div").children(".test")
$("div").find(".test")
$(".test").next()
$(".test").nextAll()
$(".test").nextUntil()
$("div").prev()
$("div").prevAll()
$("div").prevUntil()
$(".test").parent()
$(".test").parents()
$(".test").parentUntil()
$("div").siblings()
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <p>hello</p> 9 <div id="div1" class="outer" name="aaa">outer 10 <div class="inner">inner 11 <p id="p2">p2</p> 12 </div> 13 <p>p1</p> 14 </div> 15 <div>div1</div> 16 <a href="">aaa</a> 17 <div>div2</div> 18 <p id="p1">pppp</p> 19 <ul> 20 <li id="li1">1111</li> 21 <li>2222</li> 22 <li>3333</li> 23 <li>4444</li> 24 <li>5555</li> 25 </ul> 26 27 28 <script src="js/jquery-3.4.1.js"></script> 29 <script type="text/javascript"> 30 // //基本篩選器 31 // $("li:first").css("color","red") //選擇第一個li 32 // $("li:last").css("color","red") //選擇最後一個li 33 // $("li:eq(2)").css("color","red") //選擇第2個li,從0開始計數 34 // $("li:even").css("color","red") //選擇偶數行的li,從0開始計數 35 // $("li:odd").css("color","red") //選擇奇數行的li,從0開始計數 36 // $("li:gt(2)").css("color","red") //選擇行數大於2的li,從0開始計數 37 // $("li:lt(2)").css("color","red") //選擇行數小於2的li,從0開始計數 38 39 // //過濾篩選器 40 // $("li").eq(2).css("color","red") 41 // $("li").first().css("color","red") 42 43 // //查找篩選器 44 // $(".outer").children("p").css("color","red") //查找子代 45 // $(".outer").find("p").css("color","red") //查找後代 46 47 // $(".outer").next().css("color","red") //查找後一個兄弟標簽 48 // $(".outer").nextAll().css("color","red") //查找後面所有兄弟標簽 49 // $(".outer").nextUntil("#p1").css("color","red") //查找後面所有兄弟標簽,直到p1(不包含p1) 50 51 // $("li").eq(2).prev().css("color","red") //查找前一個兄弟標簽 52 // $("li").eq(2).prevAll().css("color","red") //查找前面所有兄弟標簽 53 // $("li").eq(2).prevUntil("#li1").css("color","red") //查找前面所有兄弟標簽,直到li1(不包含li1) 54 55 // $("#p2").parent().css("color","red") //查找父代 56 // $("#p2").parents().css("color","red") //查找所有祖先 57 // $("#p2").parentsUntil(".outer").css("color","red") //查找所有祖先,直到".outer",(不包含".outer") 58 59 // $(".outer").siblings().css("color","red") //查找所有兄弟標簽 60 </script> 61 </body> 62 </html>示例
四、操作元素
1. 屬性操作
--------------------------屬性 $("").attr(); $("").attr("class") 顯示class屬性的值 $("").attr("class","a") 修改class屬性 $("").removeAttr(); $("").prop(); $("").removeProp(); --------------------------CSS類 $("").addClass(class|fn) $("").removeClass([class|fn]) --------------------------HTML代碼/文本/值 $("").html([val|fn]) $("").text([val|fn]) $("").val([val|fn|arr]) --------------------------- $("").css("color","red")
<input id="chk1" type="checkbox" />是否可見 <input id="chk2" type="checkbox" checked="checked" />是否可見 <script> //對於HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。 //對於HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。 //像checkbox,radio和select這樣的元素,選中屬性對應“checked”和“selected”,這些也屬於固有屬性,因此 //需要使用prop方法去操作才能獲得正確的結果。 // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // false // ---------手動選中的時候attr()獲得到沒有意義的undefined----------- // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // true console.log($("#chk1").prop("checked"));//false console.log($("#chk2").prop("checked"));//true console.log($("#chk1").attr("checked"));//undefined console.log($("#chk2").attr("checked"));//checked </script> attr和prop
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <button onclick="selectall()">全選</button> 9 <button onclick="reverse()">反選</button> 10 <button onclick="cancel()">取消</button> 11 <table> 12 <tr> 13 <td><input type="checkbox" /></td> 14 <td>111</td> 15 </tr> 16 <tr> 17 <td><input type="checkbox" /></td> 18 <td>222</td> 19 </tr> 20 <tr> 21 <td><input type="checkbox" /></td> 22 <td>333</td> 23 </tr> 24 </table> 25 26 <script src="js/jquery-3.4.1.js"></script> 27 <script> 28 function selectall(){ 29 $(":checkbox").each(function(){ 30 $(this).prop("checked",true); 31 }) 32 } 33 function cancel(){ 34 $(":checkbox").each(function(){ 35 $(this).prop("checked",false); 36 }) 37 } 38 function reverse(){ 39 $(":checkbox").each(function(){ 40 if($(this).prop("checked")){ 41 $(this).prop("checked",false); 42 } 43 else{ 44 $(this).prop("checked",true); 45 } 46 }) 47 } 48 </script> 49 </body> 50 </html>全反選
jquery迴圈的方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <p>1111</p> <p>2222</p> <p>3333</p> <p>4444</p> <script src="js/jquery-3.4.1.js"></script> <script> li=[11,22,33]; //方式一: $.each(li,function(x,y){ console.log(x,y);//x為索引,y為值 }) //方式二: $("p").each(function(){ console.log($(this).html()) }) </script> </body> </html>
2. 文檔處理
//創建一個標簽對象 $("<p>") //內部插入 $("").append(content|fn) ----->$("p").append("<b>Hello</b>"); $("").appendTo(content) ----->$("p").appendTo("div"); $("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>"); $("").prependTo(content) ----->$("p").prependTo("#foo"); //外部插入 $("").after(content|fn) ----->$("p").after("<b>Hello</b>"); $("").before(content|fn) ----->$("p").before("<b>Hello</b>"); $("").insertAfter(content) ----->$("p").insertAfter("#foo"); $("").insertBefore(content) ----->$("p").insertBefore("#foo"); //替換 $("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>"); //刪除 $("").empty() $("").remove([expr]) //複製 $("").clone([Even[,deepEven]])
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <a href="">click</a> 9 <div class="c1"> 10 <p>PPP</p> 11 </div> 12 <button>add</button> 13 14 <script src="js/jquery-3.4.1.js"></script> 15 <script type="text/javascript"> 16 $("button").click(function(){ 17 // $(".c1").append("<h1>hello</h1>") 18 var $ele=$("<h1>"); 19 $ele.html("hello"); 20 // //內部插入 21 // $(".c1").append($ele) 22 // $ele.appendTo(".c1") 23 // $(".c1").prepend($ele) 24 // $ele.prependTo(".c1") 25 26 // //外部插入 27 // $(".c1").after($ele) 28 // $ele.insertAfter(".c1") 29 // $(".c1").before($ele) 30 // $ele.insertBefore(".c1") 31 32 // //替換 33 // $(".c1").replaceWith($ele) 34 35 // //刪除 36 // $(".c1").empty() //清空".c1"的內容 37 // $(".c1").remove() //刪除".c1"標簽 38 }) 39 </script> 40 </body> 41 </html>示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div class="outer"> <div class="item"> <button onclick="add(this)">+</button> <input type="text" /> </div> </div> <script src="js/jquery-3.4.1.js"></script> <script> function add(self){ //var $clone_obj=$(.item).clone(); if($(self).html()=="+"){ var $clone_obj=$(self).parent().clone() $(".outer").append($clone_obj) $clone_obj.children("button").html("