国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 js教程 Vanilla JavaScript中DOM操縱的基礎(chǔ)知識(無jQuery)

Vanilla JavaScript中DOM操縱的基礎(chǔ)知識(無jQuery)

Feb 16, 2025 am 09:15 AM

這篇文章,我們的現(xiàn)代JavaScript選集的一部分,探討了Vanilla JavaScript進(jìn)行DOM操縱的功能,表明它是JQuery的強(qiáng)大替代品。 通過SitePoint Premium訪問完整的選集。

The Basics of DOM Manipulation in Vanilla JavaScript (No jQuery)

> jQuery通常是DOM操縱的首選,而Vanilla JavaScript提供了有效的本機(jī)方法。本文涵蓋了關(guān)鍵DOM操縱任務(wù):查詢和修改DOM,管理類和屬性,事件處理和動畫。 最後,我們將構(gòu)建一個輕巧的自定義DOM庫。

鑰匙要點(diǎn):

。

  • >和
  • 提供有效的元素選擇;前者返回第一場比賽,而後者則以nodelist為單位。
  • >使用.querySelector()方法和.querySelectorAll()>修改元素類和屬性,了解操縱DOM與HTML屬性的性能含義。
  • >使用
  • 進(jìn)行事件處理,啟用單個元素上各種類型的多種偵聽器,提供的靈活性比.classList>。 .setAttribute()>。
  • >通過創(chuàng)建輔助功能或迷你插曲來處理重複的DOM任務(wù),提高性能和代碼清晰度,從而使用本機(jī)JavaScript複製JQuery的便利
  • .addEventListener().onclick DOM操縱:查詢DOM
  • >
  • (注意:本文提供了香草DOM API的高級概述。有關(guān)綜合詳細(xì)信息,請參閱Mozilla開發(fā)人員網(wǎng)絡(luò)。) 與CSS選擇器一起使用
>使用

>

這是第一個匹配元素。

檢查元素是否與選擇器匹配:

.querySelector()

檢索所有匹配元素:
const myElement = document.querySelector('#foo > div.bar');

父元素中的查詢.matches()提高性能:

myElement.matches('div.bar') === true;

>與.querySelectorAll()>,

等方法的實(shí)時(shí)收集不同,返回靜態(tài)節(jié)點(diǎn)符,該靜態(tài)節(jié)點(diǎn)不會動態(tài)更新。 這會影響性能並需要明確的迭代。
const myElements = document.querySelectorAll('.bar');
與Nodelists合作

const myChildElement = myElement.querySelector('input[type="submit"]');

getElementsByTagName().querySelectorAll()返回節(jié)點(diǎn)符,而不是數(shù)組。 將其轉(zhuǎn)換為標(biāo)準(zhǔn)數(shù)組方法的數(shù)組:

const myElement = document.querySelector('#foo > div.bar');

> Nodelist屬性,例如children>,firstElementChild,nextElementSibling等,提供了對相關(guān)節(jié)點(diǎn)的方便訪問。 請記住,childNodes包括所有節(jié)點(diǎn)類型,而不僅僅是元素。 使用nodeTypeinstanceof檢查節(jié)點(diǎn)類型。

修改類和屬性

使用.classList>進(jìn)行有效類操作的方法:

>
myElement.matches('div.bar') === true;

>直接訪問和修改元素屬性:

>
const myElements = document.querySelectorAll('.bar');

.getAttribute().setAttribute().removeAttribute()>直接修改HTML屬性,觸發(fā)瀏覽器Redraws。 很少使用這些,主要用於缺乏DOM屬性等效物的屬性,或者在克隆等操作中持續(xù)進(jìn)行更改時(shí)。

添加CSS樣式

使用駱駝限制的屬性名稱應(yīng)用樣式:

const myChildElement = myElement.querySelector('input[type="submit"]');

.window.getComputedStyle()>檢索計(jì)算樣式值:

Array.from(myElements).forEach(doSomethingWithEachElement);

>修改dom

>使用appendChild()>,insertBefore()進(jìn)行元素操縱。 removeChild()創(chuàng)建副本;使用布爾論點(diǎn)進(jìn)行深層克隆。 用cloneNode()創(chuàng)建新元素,並使用createElement()>。 createTextNode()

元素屬性:innerhtml和textContent

>

分別管理HTML和純文本內(nèi)容。 修改.innerHTML完全替換內(nèi)容;使用.textContent的附加效率不如附加單個節(jié)點(diǎn)效率。 使用.innerHTML來優(yōu)化多個附錄。 .innerHTML = DocumentFragment

聆聽事件

>首選

,而不是直接分配到事件屬性(例如

)的靈活性和多個偵聽器。 使用.addEventListener()訪問觸發(fā)元素。 onclick>防止默認(rèn)操作; event.target停止事件冒泡。 可選的第三個參數(shù)為.preventDefault()>提供配置選項(xiàng)(.stopPropagation(),addEventListener(),capture)。 事件委託提高效率並處理動態(tài)添加的元素。 once passive

動畫

>使用

進(jìn)行平滑的動畫,避免佈局thrash。

> requestAnimationFrame()

寫下自己的助手方法

> >創(chuàng)建自定義輔助功能以簡化DOM操縱,從而反映了jQuery的便利性。 此示例顯示了一個基本的自定義

函數(shù):

> $

這允許在保留Vanilla JavaScript的好處的同時(shí)提供更多簡潔的代碼。
myElement.classList.add('foo');
myElement.classList.remove('bar');
myElement.classList.toggle('baz');

結(jié)論

>(為簡潔而省略了FAQS部分,但是輸入中提供的信息已上面涵蓋。

以上是Vanilla JavaScript中DOM操縱的基礎(chǔ)知識(無jQuery)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用於不同的應(yīng)用場景。 Java用於大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁開發(fā)。

JavaScript評論:簡短說明 JavaScript評論:簡短說明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時(shí)區(qū)問題建議使用支持時(shí)區(qū)的庫,如Luxon。掌握這些要點(diǎn)能有效避免常見錯誤。

為什麼要將標(biāo)籤放在的底部? 為什麼要將標(biāo)籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

JavaScript:探索用於高效編碼的數(shù)據(jù)類型 JavaScript:探索用於高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。 1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯誤處理。了解這兩個階段有助於精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

Java和JavaScript有什麼區(qū)別? Java和JavaScript有什麼區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語言。 1.Java是靜態(tài)類型、編譯型語言,適用於企業(yè)應(yīng)用和大型系統(tǒng)。 2.JavaScript是動態(tài)類型、解釋型語言,主要用於網(wǎng)頁交互和前端開發(fā)。

See all articles