專案需要用,總結一下相關知識,方便查看,
一、jQuery
1、什么是 jQuery?
(1)jQuery 是一個輕量級的 JavaScript 庫,極大地簡化了 JavaScript 開發,
(2)jQuery 封裝了 JS、CSS、DOM 等并提供一致的、簡潔的 API,簡化了 JS 編程,
(3)jQuery 會頻繁的操作 DOM,會影響性能(得與 MVVM 框架區分),
2、如何引入 jQuery?
(1)引入 jQuery 相關檔案(CDN 方式),
【CDN:(此處選用 BootCDN,其他 CDN 亦可)】
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
(2)官網下載也行
【官網下載地址:】 https://jquery.com/download/
(3)基本步驟:
Step1:引入 jQuery 相關 js 檔案,
Step2:利用選擇器定位到需要操作的節點(元素),
Step3:操作節點(元素),
【基本使用格式:】
$(selector).action()
其中:
$ 指 jQuery,
selector 指查詢的 HTML 元素(節點),
action 指對元素(節點)的操作,
【舉例:(隱藏所有的 p 標簽)】
$("p").hide();
(4)檔案就緒事件
jQuery 代碼需要等 DOM 加載完成后再進行操作,否則可能不生效,
【方式一:】 $(document).ready(function() { // jQuery 代碼 }); 【方式二:(簡寫形式,效果同方式一)】 $(function() { // jQuery 代碼 });
(5)小案例分析:
點擊隱藏按鈕,隱藏當前頁面所有的 p 標簽,
【小案例:】 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery Demo</title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { $("#hide").click(function() { $("p").hide(); }); $("#show").click(function() { $("p").show(); }) }); </script> </head> <body> <button id="hide" style="background-color: cadetblue;">p hide</button> <button id="show" style="background-color: coral;">p show</button> <div style="margin-left: 100px; background-color: #5B6270; width: 200px; height: 500px;"> <div style="margin-top: 20px;">Hello JS</div> <p>Hello</p> <p>Hello Java</p> </div> </body> </html>

二、jQuery 基本語法
1、選擇器(定位 DOM 元素位置)
jQuery 選擇器允許 對 HTML 的單個元素 或者 元素組進行操作,能實作定位元素位置并對元素樣式進行增刪改,寫法類似于 CSS 選擇器,
(1)分類:
基本選擇器、層次選擇器、過濾選擇器、表單選擇器,
(2)基本選擇器
根據標簽名、id、class名等一種或多種來選擇元素,
基本選擇器可細分為:元素選擇器、類選擇器、id 選擇器、選擇器組,
1、元素選擇器:根據標簽名定位元素, 格式: $("標簽名") 2、類選擇器:根據class屬性定位元素, 格式: $(".class屬性名") 3、id選擇器:根據id屬性定位元素, 格式: $("#id") 4、選擇器組:定位一組選擇器所對應的所有元素, 格式: $("#d1, .importent") 注:$("")回傳的均為陣列,
(3)層次選擇器
根據元素的層級關系,加上特殊的符號(>、+、~)來選擇元素,
層次選擇器又可細分為:后代(子孫)元素選擇器、子元素選擇器、兄弟元素選擇器,
1、后代元素選擇器(選子孫):在select1元素下,選中所有滿足select2的子孫元素, 格式: $("select1 select2") 2、子元素選擇器(只選子):在select1元素下,選中所有滿足select2的子元素, 格式: $("select1 > select2") 3、兄弟元素選擇器(選一個):在select1元素下,選中所有滿足select2的下一個(弟弟)元素, 格式: $("select1 + select2") 4、兄弟元素選擇器(選所有):在select1元素下,選中所有滿足select2的所有(弟弟)元素, 格式: $("select1 ~ select2")
(4)過濾選擇器
根據元素特征去選擇元素,
過濾選擇器可細分為:基本過濾選擇器、內容過濾選擇器、可見性過濾選擇器、屬性過濾選擇器、狀態過濾選擇器,
【基本過濾選擇器:】 根據元素的基本特征定位,常用于表格與串列, $("select1:first"):第一個元素, $("select1:last"):最后一個元素, $("select1:not(selector)"):去除selector的所有元素, $("select1:even"):挑選偶數行, $("select1:odd"):挑選奇數行, $("select1:eq(index)"):下標為index的元素,并回傳jQuery物件, $("select1:gt(index)"):下標大于index的元素, $("select1:lt(index)"):下標小于index的元素, 【內容過濾選擇器:】 根據文本內容定位元素,常用于文本, $("select1:contains(text)"):匹配包含給定文本的元素, $("select1:empty"):匹配所有不包含子元素或文本的空元素, 【可見性過濾選擇器:】 根據可見性定位元素, $("select1:hidden"):匹配所有不可見的元素,或者type="hidden"的元素, $("select1:visible"):匹配所有可見的元素, 【屬性過濾選擇器:】 根據屬性(id, class, style等)定位元素, $("select1[attribute]"):匹配具有attribute屬性的元素, $("select1[attribute = vlue]"): 匹配屬性等于value的元素, $("select1[attribute != value]"): 匹配屬性不等于value的元素, $("select1[attribute *= value]"): 匹配屬性中包含value的元素, $("select1[attribute ^= value]"): 匹配屬性中以value開頭的元素, $("select1[attribute $= value]"): 匹配屬性中以value結尾的元素, $("select1[attribute1][attribute2]"): 匹配屬性中同時滿足 attribute1、 attribute2 的元素, 【狀態過濾選擇器:】 根據狀態定位元素,常用于表單, $("input:enabled"):匹配可用的 input 元素, $("input:disabled"):匹配不可用的 input 元素, $("input:checked"):匹配被選中的checkbox, $("option:selected"):匹配被選中的option,
(5)表單選擇器
用于選擇表單元素,
$(":text"):匹配文本框,或者使用 $("input:text"),
$(":password"):匹配密碼框,
$(":radio"):匹配單選框,
$(":checkbox"):匹配多選框,
$(":submit"):匹配提交按鈕,
$(":reset"):匹配重置按鈕,
$(":button"):匹配普通按鈕,
$(":file"):匹配檔案框,
$(":hidden"):匹配隱藏框,
2、操作 DOM 節點
通過選擇器可以定位到 DOM 節點,操作 DOM 才是最終的需求,
DOM 指 Document Object Model,即檔案物件模型,檔案物件模型獨立于平臺和語言的界面,允許程式和腳本動態訪問和更新檔案的內容、結構以及樣式,
(1)捕獲節點、修改節點
1、讀寫節點的HTML內容,相當于JS的innerHTML, 格式: $("select").html(); // 獲取節點的html內容 $("select").html("<span>123</span>"); // 設定節點的內容 2、讀寫節點的文本內容,相當于JS的innerText, 格式: $("select").text(); // 獲取節點的文本內容 $("select").text("123"); // 設定節點的文本內容 3、讀寫節點的value屬性值,(表單的值用val取) 格式: $("select").val(); // 獲取節點的value值 $("select").val("abc"); // 設定節點的value值 4、讀寫節點的屬性值, 格式: $("select").attr("屬性名"); // 獲取節點的某屬性的值 $("select").attr("屬性名","屬性值"); // 設定節點的某屬性的值
(2)增加節點
【增加節點:】 分兩步: 1、創建DOM節點, 2、插入DOM節點, 【1、創建DOM節點】 格式: $("節點內容") 舉例: let test = $("<span>hello</span>") 【2、插入DOM節點】 格式: $("select").append(test); 做為最后一個子節點添加起來, $("select").prepend(test); 做為第一個子節點添加起來, $("select").after(test); 做為下一個兄弟節點添加進來, $("select").before(test); 做為上一個兄弟節點添加進來,
(3)洗掉節點
【格式:】 $("select").remove(); // 洗掉節點, $("select").remove(selector); // 只洗掉滿足selector的節點,(不常用) $("select").empty(); // 清空節點,
(4)添加 CSS 樣式、洗掉 CSS 樣式、修改 CSS 樣式
$("select").addClass(""); //追加樣式,
$("select").removeClass(""); // 移除指定樣式,
$("select").removeClass(); // 移除所有樣式,
$("select").toggleClass(""); // 切換樣式(對某個樣式進行添加或移除操作),
$("select").hasClass(""); // 判斷是否有某個樣式,
$("select").css("");// 讀取css的值,回傳第一次匹配的值,
$("select").css("", "") ;// 設定樣式,
$("select").css({"" : "", "" : ""}) ;// 設定多個樣式,
(5)獲取尺寸、設定尺寸
$("select").width(); // 回傳元素的寬度(不包括內邊距、邊框、外邊距)
$("select").width(""); // 設定元素的寬度(不包括內邊距、邊框、外邊距)
$("select").height(); // 回傳元素的高度(不包括內邊距、邊框、外邊距)
$("select").height(""); // 設定元素的高度(不包括內邊距、邊框、外邊距)
$("select").innerWidth(); // 回傳元素的寬度(不包括邊框、外邊距)
$("select").innerHeight(); // 回傳元素的高度(不包括邊框、外邊距)
$("select").outerWidth(); // 回傳元素的寬度(不包括外邊距)
$("select").outerHeight(); // 回傳元素的高度(不包括外邊距)
$("select").outerWidth(true); // 回傳元素的寬度
$("select").outerHeight(true); // 回傳元素的高度

(6)遍歷節點
根據元素的層級關系進行移動,即遍歷,
可以 向上移動(遍歷祖先節點)、向下移動(遍歷子孫節點)、水平移動(遍歷兄弟節點),
1、向上移動,遍歷祖先(直接父節點、祖父節點等) $("select").parent(); // 回傳直接父節點, $("select").parents(); // 回傳所有祖先節點, $("select1").parentsUntil(“select2”); // 回傳 select1 與 select2 間的所有節點,若 select2 不存在,則等價于 parents 方法 2、向下移動,遍歷子孫(直接子節點、子孫節點) $("select").children(); // 回傳直接子節點 $("select").children(selector); // 回傳匹配 selector 的直接子節點 $("select").find(selector); // 查找滿足選擇器的所有后代, $("select").find("*"); // 查找所有后代, 3、水平移動,遍歷兄弟 $("select").siblings(); // 回傳所有兄弟節點 $("select").siblings(selector); // 回傳匹配 selector 的所有兄弟節點, $("select").next(); // 回傳下一個兄弟節點 $("select").next(selector); // 回傳匹配 selector 的下一個兄弟節點, $("select").nextAll(); // 回傳當前元素的所有 弟弟節點 $("select").nextUntil(selector); // 回傳兩個選擇器間的所有節點 $("select").prev(); // 回傳上一個兄弟節點 $("select").prev(selector); // 回傳匹配 selector 的上一個兄弟節點, $("select").prevAll(); // 回傳當前元素的所有 哥哥節點 $("select").prevUntil(selector); // 回傳兩個選擇器間的所有節點
3、事件
jQuery 對事件同樣做了處理,提供了一些 API,
(1)基本語法:
【事件系結語法:】 $obj.bind(事件型別, 事件處理函式); $obj.on(事件型別, [選擇器], 事件處理函式); 比如: $obj.bind('click', fn) 其可以簡寫為 $obj.click(fn),其中$obj.click()表示觸發了click事件, 【注: on 與 bind 的區別】 bind(event,fn); // 該方法只能給系結元素添加事件,當 on()不使用第二個引數時與bind() 相同, // 當使用第二個引數時 就進行了冒泡,將 事件委托給父元素進行處理 并且this還是指向第二個引數選擇器 on(event,[selector],fn); //該方法可以給指定的子元素系結事件,注意:特別是給動態創建的dom元素系結事件時必須使用該方法, //on可以將子元素的事件委托給父元素進行處理;on可以給動態添加的元素加上系結事件, 【獲取事件物件 event:】 在 function 引數中直接寫即可, 格式: $(function(){ $("select").click(function(event) { alert(event.pageX + "," + event.pageY+ "," + event.target.nodeName); }) }); 【事件物件常用屬性:】 獲取事件源: event.target, 其回傳的是DOM物件, 獲取滑鼠點擊的坐標: event.pageX, event.pageY. 【取消事件冒泡機制:】 event.stopPropagation() 可以取消事件冒泡,
(2)常用事件 API
【滑鼠事件:】 $("select").click(function() {}); // 滑鼠左鍵點擊事件 $("select").dblclick(function() {}); // 滑鼠左鍵雙擊事件 $("select").mouseenter(function() {}); // 滑鼠移入事件(當前選中的元素范圍內觸發一次) $("select").mouseleave(function() {}); // 滑鼠移出事件(不會觸發冒泡事件) $("select").mouseover(function() {}); // 滑鼠移入事件(從子元素、當前元素相互切換時會觸發) $("select").mouseout(function() {}); // 滑鼠移出事件(會觸發冒泡事件) $("select").mousemove(function() {}); // 滑鼠移入事件(移動一個像素就會觸發) $("select").mousedown(function() {}); // 滑鼠移入并按下事件 $("select").mouseup(function() {}); // 滑鼠按下后的彈起事件 $("select").hover(mouseenter, mouseleave); // 滑鼠懸浮事件(觸發mouseenter、mouseleave事件) 【表單事件:】 $("select").focus(function() {}); // 元素獲得焦點(點擊或Tab鍵觸發)后觸發 $("select").blur(function() {}); // 元素失去焦點后觸發 $("input").change(function() {}); // 表單(input)值被修改后觸發 $("form").submit(function() {}); // form 提交時觸發 【鍵盤事件:】 $("select").keydown (function(event) {}); // 鍵盤鍵按下觸發,通過 event.key 可以獲取當前按下的鍵名 $("select").keypress(function(event) {}); // 鍵盤鍵按下觸發,通過 event.key 可以獲取當前按下的鍵名,其有部分鍵獲取不到,只能通過 keydown 獲取, $("select").keyup (function(event) {}); // 鍵盤鍵彈起觸發,通過 event.key 可以獲取當前按下的鍵名
4、影片效果
(1)顯示、隱藏
$("select").show();
$("select").hide();
$("select").toggle(speed, function(event) {}); // 引數均非必須,用于切換樣式,speed 用于設定切換,相當于 show()、hide() 方法
作用:通過增加樣式 display: block/none 來實作顯示或者隱藏,
用法:
$("select").show(執行時間, 回呼函式)
其中:
執行時間:slow, normal, fast或毫秒數,
回呼函式:影片執行完畢后要執行的函式,
(2)上下滑動式
$("select").slideDown();
$("select").slideUp();
$("select").slideToggle(speed, function(event) {});
作用:通過增加樣式 display: block/none 來實作顯示或者隱藏,
用法同show()方法,
(3)淡入、淡出
$("select").fadeIn();
$("select").fadeOut();
$("select").fadeToggle(speed, function(event) {});
作用:引數可選,通過改變不透明度opacity、display來實作顯示或者隱藏,
$("select").fadeTo(speed,opacity,callback);
作用:speed,opacity 引數必須,通過改變不透明度opacity來實作顯示或者隱藏,
用法同show()方法,
(4)自定義影片
animate(偏移位置, 執行時間,回呼函式) 其中: 偏移位置:必須,{}描述影片執行后元素的樣式, 執行時間:可選,毫秒數, 回呼函式:可選,影片執行結束后要執行的函式, 形如: $("div").click(function(){ $("div").animate({"height" : "300px"},1000).animate({"width" : "300px"},1000).animate({"height" : "100px"},1000).animate({"width" : "100px"},1000); })
5、操作AJAX
AJAX:Asynchronous JavaScript and XML,即異步的 JavaScript 和 xml,簡單的理解為在不多載整個瀏覽器頁面下,AJAX向后臺發送請求并回應,將資料展示在頁面上,
(1)$.ajax()
執行異步的 http 請求,
【格式:】 $.ajax({ url:請求地址, type:請求型別POST|GET, data:提交的資料, async:同步或者異步(默認)處理,true(默認)|false, dataType:預期服務器回傳結果型別, success:成功時回呼函式, error:失敗時回呼函式, beforeSend:請求發送前回呼函式 }); 【舉例:】 <script> $(function(){ //頁面載入后,執行此方法 $("#showBtn").click(function(){ //id=showBtn的點擊事件 var name = $("username").val(); $.ajax({ url:"https://www.baidu.com", type:"get", data:{"name":name}, //等價于"name=" + name success:function(result){ //result等價于xhr.responseText,即服務器回傳的結果 $("msg").html(result); //回傳html轉換后的資料 $("msg").text(result); //回傳文本資料 } }); }); }); </script>
(2)$.get()
使用 Http 的 Get 發送請求并獲取資料,
【格式:】 $.get(URL,data,function(response,status,xhr),dataType); 其中: URL:必須,請求的地址, data:可選,提交到服務器的資料, dataType:可選,服務器回傳的資料型別, function:可選,response為回傳的結果,status為回傳的狀態,xhr為 XMLHttpRequest 物件,
(3)$.post()
使用 Http 的 Post 發送請求并獲取資料,
【格式:】 $.post(URL,data,function(response,status,xhr),dataType) 引數同 $.get()
(4)$("select").load()
從服務器加載資料,并放在指定元素上,
【格式:】 $("select").load(url,data,function(response,status,xhr)) 引數同 $.get()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/18315.html
標籤:jQuery
上一篇:CSS如何匹配到多個class
