精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用原生 JavaScript 實現十大 jQuery 函數

開發 前端
在本文中我將把自己最常用的 jQuery 函數轉換為原生 JavaScript。

在本文中我將把自己最常用的 jQuery 函數轉換為原生 JavaScript。

有時我需要創建一個簡單的靜態 HTML 或登錄頁面,而且不想引入任何庫或其它依賴。對這種情況,我只使用普通的 JavaScript 來完成工作,知道它們的工作遠離感覺真的很爽。

在開始之前,首先要知道標題是要轉換為原生 JavaScript 的 jQuery 函數。接下來將簡要介紹它做什么,然后是轉換后的 JavaScript 代碼和一些附加說明。

[[391228]]

1. $(document).ready(..)

檢查文檔是否已加載并準備好執行腳本。

  1. let isLoaded = false
  2. let myOnLoadCallBack = function(){ 
  3.     isLoaded = true
  4.     //my stuff here 
  5. document.addEventListener("DOMContentLoaded", myOnLoadCallBack()); 
  6.  
  7. document.addEventListener('readystatechange', (event) => { 
  8.     if (document.readyState === 'complete' && !isLoaded) { 
  9.         myOnLoadCallBack(); 
  10.     } 
  11. ); 

使用了 DOMContentLoaded 事件偵聽器,這是在構建 DOM 樹但尚未加載任何其他資源(即樣式表、圖像等)時觸發的。如果在 HTML 文檔中找到任何 script 標記,DOMContentLoaded 也會等待加載這些腳本。

如果樣式后面有腳本標記,在加載樣式時就會出現問題。出現這種情況時,如果腳本需要修改樣式,則在腳本之前加載樣式。

IE 8 及更低版本不支持 DOMContentLoaded。如果你不得不支持 IE 8,應該用 document.readyState。

以下是不同的狀態:

  • loading : 正在加載文檔
  • interactive : 文檔已完全讀取
  • complete : 文檔已完全讀取,所有資源(樣式、圖像)也被加載

2. $(…).HTML()

查找現有 DOM 元素的值,或插入一些內容。

要查找現有值,只需引用 innerHTML 屬性即可。

  1. var content = document.querySelector("section#html div.content p.retrieve").innerHTML; 

要插入一些內容,請將 innerHTML 分配給可包含 HTML 標記的新內容。請注意:這將替換所有的現有內容。

  1. document.querySelector("section#html div.results p.sample").innerHTML = “<p>Starting a new paragraph</p>”; 

3.  $(…).Append

在現有元素的末尾插入一些 HTML。

首先,需要找到并獲取我們想要插入新內容的元素。

  1. var appendEl = document.querySelector("section#append div.content div.results"); 

接下來創建要插入的元素。

  1. var childEl = document.createElement("div"); 
  2. childEl.innerHTML = "<p>New <strong>child</strong> Content!</p>" 

最后,插入元素。

  1. //appending 
  2. appendEl.appendChild(childEl); 

當然,這需要三個步驟才能完成,但可以簡化一下。

首先創建新元素。

  1. var childEl = document.createElement("div"); 
  2. childEl.innerHTML = "<p>New <strong>child</strong> Content!</p>" 

接下來在一行中找到并插入新元素。

  1. document.querySelector("section#append div.content div.results").appendChild(childEl); 

如果想進一步簡化,或者發現自己做了很多工作,你可以創建一個包裝函數來做到這一點。

4. $(…).prepend()

與上面的 append 非常相似,唯一的區別是這個插入到元素的開頭。所以我們直接跳轉到簡化的解決方案。

創建要插入的新元素。

  1. var newDiv = document.createElement("div"); 
  2. var textNode = document.createTextNode("new content to inserted!"); 
  3. newDiv.appendChild(textNode); 

查找現有元素并插入新元素。

  1. document.querySelector("section#prepend div.content p#existing").insertBefore(newDiv, prependEl.firstChild); 

5. $(…).empty()

清空或清除 DOM 元素。你可能會認為只需要將 innerHTML 屬性賦給一個空字符串就行了。但這只做了一半,想一想如果目標元素還有子 DOM 元素會發生什么?我們會做到這一點,它也很簡單。

首先從清除現有元素的內容開始。

  1. document.getElementById("empty-content").innerHtml = “”; 

好的,現在怎樣處理所有內部 DOM 元素?先清除現有內容,然后在循環中刪除所有子 DOM 元素。

  1. var contentEl = document.getElementById("empty-content"); 
  2. contentEl.innerHtml = ""
  3. while(contentEl.firstChild){ 
  4.     contentEl.removeChild(contentEl.firstChild); 

用 while 循環進行迭代,直到沒有子項要刪除為止。

6. $(…).Attr(name)

獲取現有 DOM 元素的屬性(attribute)值,或設置屬性。要記住重要一點是:并非所有 DOM 元素都有相同的屬性。例如復選框與按鈕(按鈕不具有 checked 屬性)。

從獲取復選框的 checked 屬性開始。

  1. let isChecked = document.querySelector("div#attributes input#my-check-box").getAttribute("checked"); 

現在讓我們看看怎樣設置相同的屬性(attribute)。

  1. var el = document.querySelector("div#attributes input#my-check-box"); 

可以通過訪問 JavaScript 屬性(property)來更改其狀態。

  1. el.checked = true

你可能已經注意到我將 checked 鍵稱為 JavaScript 屬性(property)。元素屬性(attribute)和 JavaScript 屬性(property)有什么區別嗎?簡單來說,屬性(property)是 JavaScript 來自元素屬性(attributes)的繼承鍵。這意味著你可以將 DOM 元素屬性(attribute)作為 JavaScript 對象屬性(property)進行訪問。

以下是有關 propertie 與 attribute 的幾個要點。

  • property 是來自 attribute 的 JavaScript 繼承值(即 .class vs className)
  • 元素屬性(property)僅在其為標準屬性(property)時才從屬性(attribute)創建。所以如果你引入了自定義屬性(attribute),它將不會成為對象屬性(property)的一部分。
  • 根據元素,可用屬性(attribute)會有所不同(即復選框與按鈕)

7. $(…).val()

獲取匹配的 DOM 元素的值。這也比較簡單,讓我們從獲取現有元素的值開始。

為了使這些命令清晰,我將它們分開了。雖然它們可以在一行中完成。

  1. var contentEl = document.querySelector("#my-input-el"); 
  2. var lnameValue = contentEl.querySelector("input[name='lname']").value; 

設定值同樣簡單,也可以在一行中完成。

  1. contentEl.querySelector("input[name='fname']").value = "Some random value"

與使用 innerHTML 設置內容類似,這也會覆蓋元素當前的所有值。

8, 9.  (…).off()

要從元素添加或刪除事件,請相應地使用 on() 或 off()。

添加事件處理:

  1. document.getElementById("my-button").addEventListener("click", function(evt){ 
  2.     //my custom code here 
  3. }); 

刪除事件處理,這里需要對瀏覽器所支持的屬性進行額外檢查。

  1. var toggleFunction = function(){...} 
  2. if (toggleBtn.removeEventListener) { // For all major browsers, except IE 8 and earlier 
  3.     toggleBtn.removeEventListener("click", toggleFunction); 
  4. } else if (toggleBtn.detachEvent) { // For IE 8 and earlier versions 
  5.     toggleBtn.detachEvent("click", toggleFunction) 

添加或刪除事件處理時需要注意以下幾點。

  • 在實例化代碼時元素必須存或者沒有被附加事件。
  • 刪除事件偵聽器時,函數引用必須相同。
  • 內聯匿名函數不起作用,因為引用不同。
  • 與 jQuery 不同,刪除事件處理時,你必須指定要被刪除的事件。

有一種在不明確的情況下刪除所有事件處理的方法,就是克隆元素并替換它。這也將會消除子元素所有的附加事件。

最后刪除所有元素。

  1. var currEl = document.getElementById("button"); 
  2. var cloneElcurrEl.cloneNode(true); 
  3. currEl.parentNode.replaceChild(cloneEl, currEl); 

10.  $(…).toggle()

切換元素上的顯示,可以通過幾種方式完成。每種方法都有不同的結果。你需要決定所需的行為。

第一種方法是將元素的 display 屬性更改為 none 以從 DOM 中刪除元素,并將其設置為 initial 以將其設置回來。這里重點是:如果你切換顯示,將會影響你的布局和切換元素。

在這里,我們通過直接訪問元素的 style 屬性來切換圖像元素上的顯示。

  1. if(imgEl.style.display && imgEl.style.display === "none"){ 
  2.     imgEl.style.display = "initial"
  3. } else { 
  4.     imgEl.style.display = "none"

第二種方法是更改元素可見性,這將隱藏元素并保留布局。

  1. if(imgEl.style.visibility && imgEl.style.visibility === "hidden"){ 
  2.     imgEl.style.visibility = "initial"
  3. } else { 
  4.     imgEl.style.visibility = "hidden"
  5. }; 

總結

如果你一直在使用庫和 JavaScript 框架,那么很容易忽略一些實現的簡單性。但最重要的是,你也忽略了對 DOM 的一些核心工作原理的基本理解。很好地理解 DOM 不僅可以幫你更好的設計應用,還可以解決調試上的問題。

這些只是我最常用的一些函數。現在我把它們分享給你,如果你想寫出自己的函數,而不是在自己的程序中添加使軟件體積增加的庫的話。

希望這些可以幫助你!

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2012-10-08 09:21:49

jQuery Mobi

2019-08-08 16:54:08

GitHubJavaScript編程語言

2022-03-10 12:03:33

Python算法代碼

2020-07-22 23:37:53

物聯網應用物聯網IOT

2009-02-23 10:17:36

Javascript框架應用

2019-05-29 17:45:32

JavaScript算法思路代碼實現

2022-04-14 09:30:22

深度學習激活函數人工神經

2020-05-25 15:54:58

JavaScript框架開發

2024-04-28 09:47:32

Linux系統

2023-10-24 15:56:08

邊緣計算

2020-08-05 10:13:14

JavaScript開發

2010-11-22 09:51:29

2011-05-11 10:46:51

2023-09-20 16:22:44

2016-10-18 08:45:26

2022-08-16 14:27:56

Java開發編程

2020-07-10 06:10:14

Python開發代碼

2021-09-26 10:14:16

ITIT領導IT管理

2023-01-16 14:37:41

數字化轉型開發物聯網

2023-05-15 11:16:18

物聯網IOT
點贊
收藏

51CTO技術棧公眾號

日本丰满少妇一区二区三区| 久久综合九色综合欧美就去吻| 中文字幕在线观看日韩| jizz18女人| 色呦呦在线播放| wwwwxxxxx欧美| 91九色单男在线观看| 日韩av电影网| 91偷拍一区二区三区精品| 日韩欧美国产一区二区在线播放| 黄色一级在线视频| av在线电影网| av在线一区二区三区| 国产精品亚洲综合天堂夜夜| 久久久久国产精品夜夜夜夜夜| 欧美三级黄网| 丁香婷婷综合网| 国产精品成人一区二区三区吃奶| 欧美三级小视频| 成人羞羞网站入口免费| 亚洲国产精品久久久久| 激情黄色小视频| 一本大道色婷婷在线| 亚洲欧美一区二区三区国产精品| 免费看成人片| 成人午夜免费在线观看| 久久99久久精品| 琪琪第一精品导航| 久热这里只有精品在线| 日韩中文在线电影| 亚洲人成电影网站色www| 日本特黄在线观看| 全球最大av网站久久| 欧美日韩国产精品专区 | 日韩手机在线观看视频| 日本孕妇大胆孕交无码| 国产精品盗摄一区二区三区| 欧美一进一出视频| 亚洲精品久久久久avwww潮水| 免费看日韩精品| 日韩av高清不卡| 久久青青草视频| 亚洲激情在线| 久久久久久噜噜噜久久久精品| 精品国产视频在线观看| 亚洲视频分类| 日韩激情av在线播放| 国产xxxx视频| 国产精品视屏| 亚洲精品按摩视频| 一区二区三区少妇| 任你躁在线精品免费| 亚洲精品成人av| 国产精品成人99一区无码 | 久草网站在线观看| 欧美一区二区三区免费看| 最新国产成人av网站网址麻豆| 99久久人妻无码精品系列| 伊甸园亚洲一区| 亚洲精品永久免费| 熟女俱乐部一区二区| 免费视频一区三区| 一区二区国产精品视频| 精品熟妇无码av免费久久| av影片在线一区| 日韩亚洲精品视频| 玖玖爱这里只有精品| 中文字幕人成人乱码| 久久久久久久爱| 国产精品视频久久久久久久| 久久xxxx精品视频| 国产精品自产拍在线观看中文| 中文字幕第2页| 另类成人小视频在线| 成人午夜在线视频一区| 亚洲黄色在线观看视频| 97精品久久久午夜一区二区三区| 欧美日韩日本网| 在线免费看黄网站| 一区二区三区欧美| 久久免费视频3| 日韩精品一区二区三区av| 欧美一区二区视频在线观看| 国内自拍偷拍视频| 亚洲免费专区| 精品国产一区二区三区四区在线观看| 中文字幕av久久爽av| 国产精品国码视频| 国产精品999| 国产高清视频免费观看| 久久久亚洲高清| 国产精品久久成人免费观看| bbw在线视频| 欧美探花视频资源| 国产吃瓜黑料一区二区| 蜜桃一区二区三区| 欧美日韩成人在线视频| 日韩美一区二区| 国产一区激情在线| 久久综合入口| 在线三级中文| 欧美综合视频在线观看| 深夜视频在线观看| 日本黄色精品| 欧美日本国产在线| 中文资源在线播放| 99精品国产一区二区三区不卡| 一区二区高清视频| 中文字幕在线直播| 日韩免费电影网站| 奇米网一区二区| 亚洲一区观看| av色综合网| 幼a在线观看| 欧美日韩精品在线播放| 女王人厕视频2ⅴk| 欧美电影一二区| 欧美在线视频观看| 欧美熟妇另类久久久久久不卡| 中文字幕免费观看一区| 国产精品免费观看久久| 成人黄色av网址| 久久久国产精品x99av | 三妻四妾完整版在线观看电视剧 | 一区二区三区波多野结衣在线观看| 玩弄japan白嫩少妇hd| 国产伦精品一区二区三区免费优势| 中日韩美女免费视频网址在线观看 | 九九九在线观看视频| 欧美色图婷婷| 色综合久久悠悠| 国产精品久久久久久久久久久久久久久久久久 | 东凛在线观看| 色999日韩国产欧美一区二区| 天天躁日日躁狠狠躁av麻豆男男 | 中文字幕不卡的av| 欧美激情国产精品日韩| 奇米影视777在线欧美电影观看| 九九热视频这里只有精品| 国产又大又粗又长| 中文字幕不卡在线播放| 亚洲一区二区三区四区五区xx| 亚洲区小说区图片区qvod按摩| 91国产精品视频在线| 黄色av一区二区三区| 亚洲一区二区三区视频在线播放| 亚洲精品中文字幕乱码无线| 天天天综合网| 96精品久久久久中文字幕| 欧洲美女少妇精品| 91精品国产综合久久精品app| 亚洲不卡的av| 激情久久五月天| 精品国产三级a∨在线| 日本国产亚洲| 成年无码av片在线| 亚洲高清视频在线播放| 亚洲图片欧美综合| 国产精品久久久久久久无码| 亚洲美女色禁图| 免费国产一区二区| 粉嫩av一区二区三区四区五区 | 无码小电影在线观看网站免费| 亚洲精品成人av| 福利网址在线观看| 国产精品久久三| 91福利视频免费观看| 亚洲视频观看| 国产呦系列欧美呦日韩呦| 日韩激情电影| 在线播放日韩欧美| av在线亚洲天堂| 午夜精品福利久久久| 亚洲av无码一区二区三区人 | 午夜精品免费| 黄色一区三区| 成人午夜亚洲| 久精品免费视频| 秋霞av在线| 欧美日韩亚洲综合一区二区三区 | 国产在线观看网站| 欧美精品视频www在线观看| 欧美日韩中文字幕在线观看| 91偷拍与自偷拍精品| 国产精品一区二区小说| 欧美精品网站| 区一区二区三区中文字幕| 91视频亚洲| 欧美中文字幕视频| 国产在线高潮| 国产视频久久久久久久| 国产精品九九九九| 一本色道**综合亚洲精品蜜桃冫| 97精品在线播放| 91在线国产观看| 亚洲午夜激情影院| 亚洲在线网站| 国产在线拍揄自揄拍无码| 欧美毛片免费观看| 91在线|亚洲| 国产精品av一区二区三区 | 日韩中文影院| 色综合视频网站| 在线观看免费黄色| 亚洲国产精品999| 国产精品毛片一区视频播| 色综合久久中文综合久久牛| 欧美激情精品久久| 国产日产欧美一区| 亚洲一级av无码毛片精品| 精品一区二区三区久久| 热久久精品国产| 亚洲精选久久| 白白操在线视频| 91亚洲一区| 日韩hmxxxx| 久久91精品| 国内外成人免费视频| 欧美区一区二区| 91精品久久久久久久久不口人| 中文字幕色婷婷在线视频| 性欧美办公室18xxxxhd| a级片国产精品自在拍在线播放| 永久免费毛片在线播放不卡| 五月婷婷久久久| 欧美mv和日韩mv国产网站| 国产精品嫩草影院桃色| 欧美在线你懂的| 无码人妻丰满熟妇精品| 狠狠色噜噜狠狠狠狠97| 国产乡下妇女做爰| 亚洲一区二区免费视频| 亚洲国产精品久| 亚洲狼人国产精品| 成熟的女同志hd| 亚洲日本在线天堂| 日韩成人短视频| 亚洲视频综合在线| 三级影片在线观看| 中文字幕一区三区| 北条麻妃在线观看视频| 中文字幕一区二区三区在线不卡| 国产精品理论在线| 国产精品麻豆久久久| 国产视频123区| 国产精品乱码久久久久久| 国产一二三四视频| 亚洲丝袜自拍清纯另类| 五月天婷婷色综合| 亚洲午夜羞羞片| 国产成人一区二区三区影院在线| 性欧美疯狂xxxxbbbb| 日韩成人免费观看| 疯狂蹂躏欧美一区二区精品| 日韩欧美在线观看免费| 欧美午夜精品久久久久久超碰| 日韩国产亚洲欧美| 欧美日韩国产123区| 国产激情视频在线播放| 精品日韩av一区二区| 色婷婷视频在线| 亚洲日韩欧美视频| 1024国产在线| 欧美成人国产va精品日本一级| 性爱视频在线播放| 91av在线免费观看| 全球最大av网站久久| 91免费看片在线| 国产精品一区二区在线| 免费观看亚洲天堂| 久久99精品久久久久久青青日本 | 中文字幕在线看视频国产欧美在线看完整| a√资源在线| 欧美伦理91i| 亚洲十八**毛片| 国产精品一区二区三| 一区二区三区四区视频免费观看| 久久国产精品一区二区三区四区| jvid福利在线一区二区| 男人j进女人j| 久久精品123| 国产在线视频三区| 91麻豆国产精品久久| 午夜三级在线观看| 五月综合激情婷婷六月色窝| 午夜视频网站在线观看| 日韩午夜在线观看视频| 你懂的免费在线观看| 久久精品99久久久久久久久| 7777kkk亚洲综合欧美网站| 国产精品aaa| 中文字幕一区二区三区日韩精品| 欧洲亚洲一区二区| 国产精品草草| 午夜剧场高清版免费观看| 99久久婷婷国产综合精品电影| 久草福利资源在线| 午夜精品福利一区二区三区av| 亚洲字幕av一区二区三区四区| 亚洲成人三级在线| 米奇精品一区二区三区| 欧美一级视频在线观看| 日韩高清一区| 五月天久久狠狠| 国产精品日本| 国偷自产av一区二区三区麻豆| 国产亚洲精久久久久久| 日韩乱码一区二区| 91精品国产黑色紧身裤美女| 国产系列在线观看| 97色伦亚洲国产| 2020最新国产精品| 一区二区三区四区免费视频| 国产毛片一区| 性农村xxxxx小树林| 亚洲欧美一区二区三区久本道91| 在线视频精品免费| 日韩精品视频免费专区在线播放| 色呦呦在线视频| 亚洲va欧美va国产综合剧情| 精品久久电影| 成人精品视频一区二区| www.亚洲人| 精品丰满少妇一区二区三区| 色婷婷激情一区二区三区| 日韩中文字幕综合| 欧美大片免费观看| 日韩欧美久久| 一道本在线观看视频| 蜜桃传媒麻豆第一区在线观看| 丰满少妇高潮一区二区| 欧美午夜xxx| 欧美偷拍视频| 清纯唯美日韩制服另类| 人人网欧美视频| 欧美s码亚洲码精品m码| 91日韩精品一区| 800av免费在线观看| 日韩久久精品电影| 超碰在线cao| 狠狠色噜噜狠狠色综合久| 一区二区日本视频| 亚洲色图14p| 欧美午夜激情小视频| 你懂的免费在线观看视频网站| 欧美洲成人男女午夜视频| 免费久久久久久久久| 国产精品69页| 国产精品视频免费看| 中文字幕在线视频免费| 中文字幕一区日韩电影| 国产精品美女久久久久人| 影音先锋成人资源网站| 成人午夜电影小说| 97免费在线观看视频| 国产视频在线一区二区| 久久xxx视频| 最近中文字幕免费mv| 国产宾馆实践打屁股91| 日韩欧美a级片| 亚洲欧美在线免费观看| 久久天堂影院| 4444在线观看| 99久久久免费精品国产一区二区| 亚洲s码欧洲m码国产av| 中文字幕免费精品一区高清| 青娱乐极品盛宴一区二区| 人妻无码一区二区三区四区| 波多野结衣在线一区| 久久永久免费视频| 日韩色av导航| 国产成人aa在线观看网站站| 黑人糟蹋人妻hd中文字幕| 久久精品人人做| 国产精品久久久久毛片| 欧美精品国产精品日韩精品| 欧美亚洲色图校园春色| 国产一二三四在线视频| 亚洲欧美区自拍先锋| 天堂av在线7| 国产玖玖精品视频| 日韩亚洲精品在线| 国产wwwwxxxx| 日韩av最新在线观看| 亚洲电影有码| 国产av国片精品| 中文字幕免费在线观看视频一区| 丰满人妻av一区二区三区| 欧美有码在线视频| 中文无码久久精品| 精品人妻无码一区二区三区换脸| 91精品国产91热久久久做人人| 手机av在线| 潘金莲一级淫片aaaaaa播放1| 91天堂素人约啪| 国产成人av免费看| 国产精品久久久久久久久| 精品白丝av| 91麻豆精品成人一区二区| 日韩国产精品视频|