# JS幼幼班 - jQuery篇 --- tags: Javascript relate --- ###### tags: `Javascript, jQuery` # jQuery 簡介 ## 01為何還要繼續使用jQuery呢? 1.台灣還是有高市佔率 ![](https://i.imgur.com/h05To2m.png) 2.支援套件仍然是最多 3.從jQuery了解JS在瀏覽器能做些什麼 * DOM操作 * 事件觸發 (滑鼠點擊、鍵盤點擊) * 表單送出 ### JQuery就是把JS的內容"擷取"其精華,讓JS變得更具體更好操作 jQuery的寫法 ![](https://i.imgur.com/qfAiSTZ.png) JS的寫法 ![](https://i.imgur.com/e19NOf4.png) 很明顯可以比較出jQuery的寫法是比較精簡好讀的 ## 02 如何使用 jQuery 並實現第一個範例 步驟一到官網下載檔案 [jQuery官網](https://jquery.com/) ![](https://i.imgur.com/doCOYon.png) 步驟二創建資料夾並把剛剛下載的檔案以及要使用jQuery的檔案擺在一起 ![](https://i.imgur.com/4taZYsp.png) 步驟三在head內引入link(跟引入CSS很像) ```javascript= <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="jquery-3.5.1.js"></script> </head> ``` 步驟四撰寫小範例: 點擊按鈕修改顏色 * `$()`選擇器 * `.click` 點擊事件 * `.css` 修改CSS ```javascript= <body> <h1 id="hello world">hello world</h1> <button id="btnred">red</button> <button id="btnblue">blue</button> <script> $("#btnred").click(function () { $("#btnred").css('color', 'red'); }) $("#btnblue").click(function () { $("#btnblue").css('color', 'blue'); }) </script> </body> ``` ![](https://i.imgur.com/L1kNdgS.png) ## 03 jQuery 到底在做些什麼 ? JS可以在瀏覽器做的事情以及讓它更精簡且易讀 * 當 按下按鈕 => 跳出視窗 * 當 送出表單 => 跳轉頁面 * 當 上傳檔案 => 通知完成 ## 04 jQuery 的三大重點 ### 1. 選擇器: `$()` 選取要觸發的元素 例如: `$("body")` 選取整個`<body>` ### 2. 事件觸發: 決定那些事件可以觸發callback函式 例如: `.click` 點擊觸發事件 ### 3. callback函式: 事件觸發後會執行甚麼動作 * 顯示、隱藏元素 * 改變CSS效果 * DOM操作 而上面的小範例就是點擊後執行修改按鈕顏色 ![](https://i.imgur.com/L1kNdgS.png) # 第一章 選擇器 ## id選擇器 ```javascript= <body> <h1 id="hello world">hello world</h1> <button id="btnred">red</button> <button id="btnblue">blue</button> <script> $("#btnred").click(function () { $("#btnred").css('color', 'red'); }) $("#btnblue").click(function () { $("#btnblue").css('color', 'blue'); }) </script> </body> ``` 一樣以上面的範例舉例: `$("#btnred")` - 抓取要操作的id加上#並用雙引號包起來就完成瞜! ## class 選擇器 跟id抓法不同會抓取一樣class的全部內容 `$(".btnred")` - 抓取要操作的class加上(.)並用雙引號包起來就完成瞜! ### 元素選擇器 一樣會選取全部的該名稱的元素 直接輸入名稱就可以抓取他們瞜 `$("p")`抓去段落`<p>` # 第二章 事件 ## 01 滑鼠事件,點擊(click) 與連續兩次點擊(dblclick) 我繼續沿用上面的範例做操作 * 點擊一次改變紅色按鈕(click) * 點擊兩次改變藍色按鈕(dblclick) ```javascript= <script> $("#btnred").click(function () { $("#btnred").css('color', 'red'); }) $("#btnblue").dblclick(function () { $("#btnblue").css('color', 'blue'); }) </script> ``` 印出結果: ![](https://i.imgur.com/L1kNdgS.png) ## 02 滑鼠事件,移入(mouseenter)與移出(mouseout) * 當滑鼠移入目標觸發事件 * 當滑鼠移出目標觸發事件 ```javascript= <script> $("#btnred").mouseenter(function () { $("#btnred").css('color', 'red'); }) $("#btnblue").mouseout(function () { $("#btnblue").css('color', 'blue'); }) </script> ``` * red是進入觸發顏色 * blue是出去觸發顏色 ![](https://i.imgur.com/aMizEwl.gif) ## 03 滑鼠的hover 事件 當取得焦點時觸發事件 ```javascript= <script> $("#btnred").hover(function () { $("#btnred").css('color', 'red'); }) $("#btnblue").hover(function () { $("#btnblue").css('color', 'blue'); }) </script> ``` 當取得焦點時觸發事件 ![](https://i.imgur.com/bVL8M6l.gif) ## 04 如果遇到沒看過的滑鼠事件該怎麼辦? [閱讀官方文件](https://api.jquery.com/) [w3cschool](https://www.w3schools.com/jquery/) ## 05 遇到jQuery 文件中不懂得地方該怎麼辦 ? 知道大方向在處理什麼內容 並從文件中去搜尋 ## 06 on('click', ..) 與 click()是等價的 click事件其實是個縮寫: 後面的handler是callback函式 `.on("click", handler)` 其實跟原生的JS的寫法很像 ```javascript= clickHandler(){ console.log(123) } addEventListener('click', clickHandler) ``` ## 07 我們怎麼知道DOM 是否已經就緒 ? 使用 ready() ready()這個方法提供了我們一個方式讓我們去跑JS並且在網頁的DOM載入完全的情況下去操作 下列方法都是等價的 ``` * $( handler ) * $( document ).ready( handler ) * $( "document" ).ready( handler ) * $( "img" ).ready( handler ) * $().ready( handler ) ``` ## 08 如何在 vscode 中快速產生 ready() code snippet 尋找這個套件 ![](https://i.imgur.com/PgDTgY7.png) 使用jq前墜去尋找就可以找到搂! ![](https://i.imgur.com/3toG4kv.png) # 第三章 選擇器的進階 ## 選擇器的進階 Traversal 鄰居、爸爸與小孩 - 鄰居篇 使用`.siblings()`印出id:1以外其他同一層的鄰居 ```javascript= <body> <h1 id="hello world">hello world</h1> <p id="1">1</p> <p id="2">2</p> <p id="3">3</p> <script> $('#1').siblings().css('color','red'); </script> ``` 讓其他同一層的鄰居呈現紅色 h1以及p都在同一階層 ![](https://i.imgur.com/sShTlwU.png) ### 搭配使用 使用`first()`去找到鄰居的第一個也就是h1 ```javascript= <script> $("#1").siblings().first().css("color", "red"); </script> ``` 印出結果 ![](https://i.imgur.com/6UhZ47W.png) 也可以搭配[]中括號使用index抓取內容去操作 不過要注意整段sinbings加上中括號的部分需要再用選擇器包裹住一次才有辦法使用 ```javascript= <script> $($("#1").siblings()[2]).first().css("color", "red"); </script> ``` 印出index為2的物件呈現紅色 ![](https://i.imgur.com/n6DvYyU.png) ## 選擇器的進階 Traversal 鄰居、爸爸與小孩 - 父母篇 尋找元素本身的上一層就是找父母的意思 使用`parent()`這個方法 ```javascript= <body> <div> <p id="1">1</p> </div> <div> <p id="2">2</p> </div> <div> <p id="3">3</p> </div> <script> $("#1").parent().css("background-color", "red"); </script> </body> ``` 尋找段落p的parent也就是它外層的div並讓他上紅色 ![](https://i.imgur.com/tvhQf2P.png) ![](https://i.imgur.com/G9ftHQM.png) ### 搭配使用 一樣可以使用`siblings()`去尋找父母的鄰居 ```javascript= <script> $("#1").parent().siblings().css("background-color", "red"); </script> ``` 會得到這個結果 ![](https://i.imgur.com/ZFk2NEP.png) ![](https://i.imgur.com/gZL8ley.png) ## 選擇器的進階 Traversal 鄰居、爸爸與小孩 - 小孩篇 去尋找子層的元素做操作 ```javascript= <body> <div> <p id="1"> <l1>1</l1> <l1>1</l1> <l1>1</l1> </p> </div> <div> <p id="2">2</p> </div> <div> <p id="3">3</p> </div> <script> $("#1").children().css("background-color", "red"); </script> </body> ``` 這三個li就是id:1元素的子層 ![](https://i.imgur.com/fBlSOuN.png) 印出結果 ![](https://i.imgur.com/ZQabatx.png) ### 搭配使用 使用`.last()`抓取子層的最後一個元素做操作 ```javascript= <script> $("#1").children().last().css("background-color", "red"); </script> ``` 抓取最後一個元素做操作 ![](https://i.imgur.com/xMJVkez.png) 印出結果 ![](https://i.imgur.com/e3112f8.png) ## chain method 如果要操作的元素外面有很多層也可以把`children()`疊很多層做操作 ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="2">2</p> </div> <div> <p id="3">3</p> </div> <script> $("#divgrand") .children() .children() .children() .last() .css("background-color", "red"); </script> </body> ``` 找了三層進去並且使用last()設定最後一個元素 ![](https://i.imgur.com/3zcBPSI.png) 印出結果 ![](https://i.imgur.com/B5rnI3K.png) ## parant(), parants(), parentsUntil()的差異 比較上面三者的不同 ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="2">2</p> </div> <div> <p id="3">3</p> </div> <script> $("#1").parent().css("border", " 5px solid red"); </script> </body> ``` ### `parant()` 只取其上層一個parent ![](https://i.imgur.com/78XdUAR.png) 也就是外面的這層divparent ![](https://i.imgur.com/pAfCSeV.png) ### `parants()` 取全部的parent ![](https://i.imgur.com/FbdAjTU.png) ![](https://i.imgur.com/vF99WZn.png) ### `parentsUntil()` 取到哪個parent為止 ```javascript= <script> $("#1").parentsUntil("#divgrand").css("border", " 5px solid red"); </script> ``` 取到parent - divgrand 為止所以只會給他的上一層divparent上外框 ![](https://i.imgur.com/kY1UIFW.png) 印出結果 ![](https://i.imgur.com/Yos10bF.png) ## Traversal : Traversing 中的 first(), last(), find() ### `first()` 使用`first()`去找到鄰居的第一個也就是h1 ```javascript= <script> $("#1").siblings().first().css("color", "red"); </script> ``` 印出結果 ![](https://i.imgur.com/6UhZ47W.png) ### `last()` 使用`.last()`抓取子層的最後一個元素做操作 ```javascript= <script> $("#1").children().last().css("background-color", "red"); </script> ``` 抓取最後一個元素做操作 ![](https://i.imgur.com/xMJVkez.png) 印出結果 ![](https://i.imgur.com/e3112f8.png) ### `find()` 尋找特定id底下的元素(任何都可以div, p, li 等等) ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="2">2</p> </div> <div> <p id="3">3</p> </div> <script> $("#divgrand").find("p").css("border", " 5px solid red"); </script> </body> ``` 尋找divgrand底下的p段落並且全部加上邊框 印出結果 ![](https://i.imgur.com/HrNk2Py.png) ## Traversal 中的 eq(), filter() 與 not() ### eq() 可以選取指定的位置的元素 注意:ndex得部分不一定從0開始 是可以自訂成從1或是從0開始 ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1" class="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="1" class="1"> <l1>a</l1> <l1>b</l1> <l1>c</l1> </p> </div> <div> <p id="1" class="1"> <l1>A</l1> <l1>B</l1> <l1>C</l1> </p> </div> <script> $(".1").eq("2").css("border", "5px solid red"); </script> </body> ``` 選取index2 為ABC ![](https://i.imgur.com/jxnaNhR.png) ### filter() 可以篩選內容 ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1" class="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="1" class="1"> <l1>a</l1> <l1>b</l1> <l1>c</l1> </p> </div> <div> <p id="1" class="1"> <l1>A</l1> <l1>B</l1> <l1>C</l1> </p> </div> <span class="1">span</span> <script> $("span").filter(".1").css("border", "5px solid red"); </script> </body> ``` 使用filter篩選span裡面有id = 1元素加上紅框框就不會抓到div去搂! ![](https://i.imgur.com/wglnP0T.png) ### not() 篩選"不是的"內容做操作 ```javascript= <body> <div id="divgrand"> <div id="divparent"> <p id="1" class="1"> <l1>1</l1> <l1>2</l1> <l1>3</l1> </p> </div> </div> <div> <p id="1" class="2"> <l1>a</l1> <l1>b</l1> <l1>c</l1> </p> </div> <div> <p id="1" class="1"> <l1>A</l1> <l1>B</l1> <l1>C</l1> </p> </div> <span class="2">span</span> <script> $("p").not(".1").css("border", "5px solid red"); </script> </body> ``` 這邊我做篩選段落中的P不是class = 1的會產紅框框 由上面可以理解小寫的abc不符合所以上色 ![](https://i.imgur.com/R1lYusp.png) # 第四章:快速理解 jQuery API (一) 特效類 ## 顯示或隱藏元素 hide() 與 show() 這邊我設置點擊事件作範例 ```javascript= <body> <button id="show">show</button> <button id="hide">hide</button> <div>div</div> <div>div</div> <script> $("#hide").click(function () { $("div").hide(); }); $("#show").click(function () { $("div").show(); }); </script> </body> ``` show,hide的效果 ![](https://i.imgur.com/7OR5I3T.gif) ## 淡入與淡出 fadeIn() fadeOut() 這邊我設置個持續一秒效果如下: ```javascript= <script> $("#hide").click(function () { $("div").fadeOut(1000); }); $("#show").click(function () { $("div").fadeIn(1000); }); </script> ``` ![](https://i.imgur.com/CgLEUwH.gif) ## 特效類 animate() 實現簡單動畫 一般不會這樣使用,會放到CSS裡面操作 不過使用起來長這樣: * 設定了變長 * 設定了透明 ```javascript= <script> $("#hide").click(function () { $("div").animate({ opacity: 0.3 }); }); $("#show").click(function () { $("div").animate({ width: "400px" }); }); </script> ``` ![](https://i.imgur.com/wzj5FRd.gif) ## jQuery 中的 Callback 回調(函式) 當事件觸發後執行的函式就是回調函式 這裡的animate就是一種: ```javascript= <script> $("#hide").click(function () { $("div").animate({ opacity: 0.3 }); }); $("#show").click(function () { $("div").animate({ width: "400px" }); }); </script> ``` # 第五章:快速理解 jQuery API (二) 「取得」與「覆寫」值 ## text()取得元素標籤中的文字 / 修改文字也可以的 `text()`不加內容的用法可以取得選取元素的文字內容 在這邊同時利用alert彈出選取元素的文字內容 ```javascript= <button class="btnone">getstr</button> <button class="btntwo">getsecstr</button> <p class="1">123</p> <p class="2">123</p> <p class="3">123</p> <script> $(".btnone").click(function () { var str = $(".1").text(); alert(str); }); </script> ``` 點擊getstr後跳出class = 1 那段落的文字內容 ![](https://i.imgur.com/rCpcu42.png) ### 並且可以針對選取的class去選擇first, last 抓取元素第一個最後一個等等 ```javascript= <body> <button class="btnone">getstr</button> <button class="btntwo">getsecstr</button> <p class="1">123456</p> <p class="2">123</p> <p class="3">123</p> <script> $(".btnone").click(function () { var str = $("p:first").text(); alert(str); }); $("#show").click(function () {}); </script> </body> ``` 點擊getstr的印出結果 ![](https://i.imgur.com/wNqYzHQ.png) ### 針對抓取的元素可以做指定 這樣選取就可以針對修飾段落p中的class = 3的部分 ```javascript= <body> <button class="btnone">getstr</button> <button class="btntwo">getsecstr</button> <p class="1">123456</p> <p class="2">123</p> <p class="3">12348</p> <script> $(".btnone").click(function () { var str = $("p.3").text(); alert(str); }); $("#show").click(function () {}); </script> </body> ``` 點擊getstr的印出結果 ![](https://i.imgur.com/t3YYetM.png) ### text(),把值放進去設定會修改文字內容 如果在text()內部填入值的話會修改文字內容 ```javascript= <body> <button class="btnone">getstr</button> <button class="btntwo">getsecstr</button> <p class="1">123456</p> <p class="2">123</p> <p class="3">12348</p> <script> $(".btnone").click(function () { $("p.3").text("hello world"); }); </script> </body> ``` 在這邊操作的話會是點擊後改變文字內容成()內部的文字 ![](https://i.imgur.com/ZkBBG9u.png) ## html() 取得或是修改DOM ### html()內不填入值 取得html內部的值: html()內不填入值,一樣會取得元素的值 ```javascript= <body> <button class="btnone">change</button> <button class="btntwo">reverse</button> <p class="1">I will change</p> <div></div> <script> $(".btnone").click(function () { var str = $(".1").html(); alert(str); }); </script> </body> ``` 按下change後顯示這個段落p內部的值 ![](https://i.imgur.com/3ZtIw43.png) 取得html tag: html()內不填入值,但是抓取parent的話會直接印出children的html tag+內容 ```javascript= <body> <button class="btnone">change</button> <button class="btntwo">reverse</button> <div> <p id="1">I will change</p> </div> <script> $(".btnone").click(function () { var str = $("div").html(); alert(str); }); </script> </body> ``` 點擊change後印出結果會包含子層的html tag+內容 ![](https://i.imgur.com/PPIeixT.png) ### html()內部填入值 會取代掉原本的內容 ```javascript= <body> <button class="btnone">change</button> <button class="btntwo">reverse</button> <div></div> <p id="1">I will change</p> <script> $(".btnone").click(function () { $(".btntwo").html("<p>hello world</p>"); }); </script> </body> ``` ![](https://i.imgur.com/SvvmhJg.png) 點下change後reverse會轉變成hello world ![](https://i.imgur.com/noiha7A.png) #### 比較奇怪的情況是 如果把內容換成div就不會被取代而是增加一個children進去如下圖 ```javascript= <script> $(".btnone").click(function () { $("div").html("<p>hello world</p>"); }); </script> ``` 點擊change後hello world加入div內部 ![](https://i.imgur.com/VPothxj.png) ## attr() 取得或改變元素的屬性 ### 取得元素的屬性 取得href,alt的值 ```javascript= <body> <button id="btn1">getHREF</button> <button id="btn2">getImagealt</button> <p><a href="http://123123123.com">123123123</a></p> <img src="123.jpg" alt="cloudy sky" /> <script> $("#btn1").click(function () { var str = $("a").attr("href"); alert(str); }); $("#btn2").click(function () { var str = $("img").attr("alt"); alert(str); }); </script> </body> ``` 點擊getHREF ![](https://i.imgur.com/hSXgj0A.png) 點擊getimagealt ![](https://i.imgur.com/Ug7xGVE.png) ### 複寫值 #### 複寫單一屬性 `attr("要被複寫的屬性名稱", "改寫的內容")` ```javascript= <body> <button id="btn1">getHREF</button> <button id="btn2">getImagealt</button> <p><a href="http://123123123.com">123123123</a></p> <img src="123.jpg" alt="cloudy sky" /> <script> $("#btn2").click(function () { $("img").attr("alt", "123"); }); </script> </body> ``` #### 一次複寫多種屬性需要加入中括號並且要修改的屬性鍵值配對 ex.(title: "jQuery") ```javascript= <body> <button id="btn1">getHREF</button> <button id="btn2">getImagealt</button> <p><a href="http://123123123.com">123123123</a></p> <img src="123.jpg" alt="cloudy sky" /> <script> $("#btn2").click(function () { var str = $("img").attr({ title: "jQuery", alt: "jQuery Logo", }); alert(str); }); </script> ``` image就會被複寫新的值進去(修改alt以及增加title進去) ![](https://i.imgur.com/AmoHfW7.png) ## val() 取得或修改 form 表單的值 ### val()取得值 針對輸入在#name, #comment, #city這三個區域的值並且使用alert把它們抓出來 ![](https://i.imgur.com/BQnlJwV.png) ```javascript= <body> <label for="">姓名</label> <input type="text" id="name" /><br /> <label for="">comments</label> <input type="text" id="comment" /><br /> <label>city</label> <select id="city"> <option value="JP">JP</option> <option value="USA">USA</option> <option value="UK">UK</option> </select> <br /> <button id="getname">getname</button> <button id="getcomment">getcomment</button> <button id="getcity">getcity</button> <script> $("#getname").click(function () { var name = $("#name").val(); alert(name); }); $("#getcomment").click(function () { var comment = $("#comment").val(); alert(comment); }); $("#getcity").click(function () { var city = $("#city").val(); alert(city); }); </script> </body> ``` 輸出結果: ![](https://i.imgur.com/Fl99mpu.png) ### val()修改內容 這邊使用$("#getname").text()取得要修改的內容後指派給變數name 在使用val(name)直接更換裡面的內容 ```javascript= <body> <label for="">國家</label> <input type="text" id="name" /><br /> <button id="getname">TW</button> <button id="getcomment">UK</button> <button id="getcity">USA</button> <script> $("#getname").click(function () { var name = $("#getname").text(); $("#name").val(name); }); $("#getcomment").click(function () { var name = $("#getcomment").text(); $("#name").val(name); }); $("#getcity").click(function () { var name = $("#getcity").text(); $("#name").val(name); }); </script> </body> ``` 點擊事件觸發修改value ![](https://i.imgur.com/6noHN7z.gif) # 第六章 快速理解 jQuery API (三) DOM 的操作 ## append()選取元素內部最後加入內容 在所選取的元素內部的最後方加入內容 可以是純文字或是`<p><div><h1>` 範例處我做`<h1>`示範 ![](https://i.imgur.com/dXMUKkz.png) ```javascript= <body> <h1>append</h1> <div id="div"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur, quasi? </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. In, voluptatem? </p> </div> <script> $("#div").append("<div>this is how append work</div>"); </script> </body> ``` ## prepend()選取元素內部最前加入內容 在所選取的元素內部的最前方加入內容 可以是純文字或是`<p><div><h1>` 範例處我做`<h1>`示範 ![](https://i.imgur.com/3atIvqO.png) ```javascript= <body> <h1>prepend</h1> <div id="div"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur, quasi? </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. In, voluptatem? </p> </div> <script> $("#div").prepend("<h1>this is how prepend work</h1>"); </script> </body> ``` ## before() 選取元素同一層最前加入內容 在所選取的元素同一層(sibling)的前方加入內容 可以在圖中觀察到我加進去的h1跟我選取的div是sibling也就是它們是同一層的最前方 ![](https://i.imgur.com/XeFnrHE.png) ```javascript= <body> <h1>before</h1> <div id="div"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur, quasi? </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. In, voluptatem? </p> </div> <script> $("#div").before("<h1>this is how before work</h1>"); </script> </body> ``` ## after()選取元素同一層最後加入內容 在所選取的元素同一層(sibling)的後方加入內容 可以在圖中觀察到我加進去的h1跟我選取的div是sibling也就是它們是同一層的後方 ![](https://i.imgur.com/ttQq8hP.png) ```javascript= <body> <h1>after</h1> <div id="div"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur, quasi? </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. In, voluptatem? </p> </div> <script> $("#div").after("<h1>this is how after work</h1>"); </script> </body> ``` ## empty()清空內容(留下tag) 清空指定元素 像我這邊移除了內容,但是div的部分會繼續存在 ![](https://i.imgur.com/YHj4NQw.gif) ```javascript= <body> <h1>empety</h1> <div id="div"> <p>Lorem ipsum dolor sit amet consec</p> <p></p> </div> <button id="btn">empty</button> <script> $("#btn").click(function () { $("#div").empty(); }); </script> </body> ``` ## remove() 移除元素(移除tag) 移除指定元素 像我這邊移除了div,他會div連同內容全部移除 ![](https://i.imgur.com/fGuqoW9.gif) ```javascript= <body> <h1>after</h1> <div id="div"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur, quasi? </p> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. In, voluptatem? </p> </div> <button id="btn">remove</button> <script> $("#btn").click(function () { $("#div").remove(); }); </script> </body> ``` ## remoteAttr() 刪除元素的屬性 刪除元素的屬性 ![](https://i.imgur.com/0Q04FIJ.gif) ```javascript= <body> <h1>removeAttr</h1> <div id="div"> <a id="a" href="http://123123.com"></a> </div> <button id="btn">removeAttr</button> <script> $("#btn").click(function () { $("#a").removeAttr("href"); }); </script> </body> ``` ## wrap() 可以保裹住元素 影片範例中使用了div以及 b,em等tag去包裹元素 但是可以使用append相關的API就好這個比較不常使用 ![](https://i.imgur.com/H7aeaiF.png) ![](https://i.imgur.com/kELnK6C.png)