欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么用原生JavaScript實現(xiàn)十大jQuery函數(shù)

本篇內(nèi)容主要講解“怎么用原生 JavaScript 實現(xiàn)十大 jQuery 函數(shù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用原生 JavaScript 實現(xiàn)十大 jQuery 函數(shù)”吧!

在蕉嶺等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,蕉嶺網(wǎng)站建設(shè)費用合理。

在本文中我將把自己最常用的 jQuery 函數(shù)轉(zhuǎn)換為原生 JavaScript。

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

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

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

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

let isLoaded = false; let myOnLoadCallBack = function(){     isLoaded = true;     //my stuff here } document.addEventListener("DOMContentLoaded", myOnLoadCallBack());  document.addEventListener('readystatechange', (event) => {     if (document.readyState === 'complete' && !isLoaded) {         myOnLoadCallBack();     } );

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

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

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

以下是不同的狀態(tài):

  • loading : 正在加載文檔

  • interactive : 文檔已完全讀取

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

2. $(…).HTML()

查找現(xiàn)有 DOM 元素的值,或插入一些內(nèi)容。

要查找現(xiàn)有值,只需引用 innerHTML 屬性即可。

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

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

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

3.  $(&hellip;).Append

在現(xiàn)有元素的末尾插入一些 HTML。

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

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

接下來創(chuàng)建要插入的元素。

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

最后,插入元素。

//appending appendEl.appendChild(childEl);

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

首先創(chuàng)建新元素。

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

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

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

如果想進一步簡化,或者發(fā)現(xiàn)自己做了很多工作,你可以創(chuàng)建一個包裝函數(shù)來做到這一點。

4. $(&hellip;).prepend()

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

創(chuàng)建要插入的新元素。

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

查找現(xiàn)有元素并插入新元素。

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

5. $(&hellip;).empty()

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

首先從清除現(xiàn)有元素的內(nèi)容開始。

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

好的,現(xiàn)在怎樣處理所有內(nèi)部 DOM 元素?先清除現(xiàn)有內(nèi)容,然后在循環(huán)中刪除所有子 DOM 元素。

var contentEl = document.getElementById("empty-content"); contentEl.innerHtml = ""; while(contentEl.firstChild){     contentEl.removeChild(contentEl.firstChild); }

用 while 循環(huán)進行迭代,直到?jīng)]有子項要刪除為止。

6. $(&hellip;).Attr(name)

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

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

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

現(xiàn)在讓我們看看怎樣設(shè)置相同的屬性(attribute)。

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

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

el.checked = true;

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

以下是有關(guān) propertie 與 attribute 的幾個要點。

  • property 是來自 attribute 的 JavaScript 繼承值(即 .class vs className)

  • 元素屬性(property)僅在其為標準屬性(property)時才從屬性(attribute)創(chuàng)建。所以如果你引入了自定義屬性(attribute),它將不會成為對象屬性(property)的一部分。

  • 根據(jù)元素,可用屬性(attribute)會有所不同(即復選框與按鈕)

7. $(&hellip;).val()

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

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

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

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

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

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

8, 9.  (&hellip;).off()

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

添加事件處理:

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

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

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

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

  • 在實例化代碼時元素必須存或者沒有被附加事件。

  • 刪除事件偵聽器時,函數(shù)引用必須相同。

  • 內(nèi)聯(lián)匿名函數(shù)不起作用,因為引用不同。

  • 與 jQuery 不同,刪除事件處理時,你必須指定要被刪除的事件。

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

最后刪除所有元素。

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

10.  $(&hellip;).toggle()

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

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

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

if(imgEl.style.display && imgEl.style.display === "none"){     imgEl.style.display = "initial"; } else {     imgEl.style.display = "none"; }

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

if(imgEl.style.visibility && imgEl.style.visibility === "hidden"){     imgEl.style.visibility = "initial"; } else {     imgEl.style.visibility = "hidden"; };

總結(jié)

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

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

希望這些可以幫助你!

到此,相信大家對“怎么用原生 JavaScript 實現(xiàn)十大 jQuery 函數(shù)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

新聞名稱:怎么用原生JavaScript實現(xiàn)十大jQuery函數(shù)
標題鏈接:http://aaarwkj.com/article30/iipjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、搜索引擎優(yōu)化做網(wǎng)站、軟件開發(fā)、ChatGPT、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
亚洲欧美中文日韩二区一区| 日本韩国黄色三级三级| 日韩毛片中文字幕在线观看| 中午字幕久久亚洲精品| 凹凸国产精品熟女视频| 加勒比av免费在线播放| 日本束缚人妻一区二区三区| 欧美精品一区二区三区在线| 日韩精品熟妻人女亚洲一区| 91麻豆精品国产久久久| 欧美大片高清在线观看| 99久久热这里只有精品| 亚洲欧美日韩精品麻豆| 亚洲黄色手机在线网站| 最新国产激情福利网站| 伊人婷婷综合激情网| 亚洲天堂免费在线播放| 上海老熟女啪啪露脸高潮| 中文字幕乱码亚洲美女精品| 偷窥偷拍原味一区二区三区| 久久国产成人精品免费看| 亚洲欧美日韩激情另类| 国产精品自产拍av在线| 五月婷婷六月丁香在线观看| 亚洲伊人av第一页在线观看| 成人黄色三级免费网站| 欧美一区二区日韩国产| 五月激情开心久久婷婷| 亚洲一区精品中文字幕| 日本一区二区三区免费看视频| 日本精品在线亚洲国产欧美| 色橹橹欧美午夜精品福利| 久久精人妻一区二区三区| 国产精品一区二区三区欧美| 内射嫩国产欧美国产日韩欧美| 91色老久久精品偷偷鲁无毒| 成人在线视频国产自拍| 色哟国产传媒视频在线观看| 欧美日韩亚洲精品一区二区三区| 欧美一级特黄大片免色| 神马免费午夜福利剧场|