日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

js DOM 節(jié)點(diǎn)查找常用方法

freeflydom
2025年7月4日 9:59 本文熱度 97

雖然目前的開發(fā)場(chǎng)景基本都是使用 React/Vue/Angular 等框架,但是對(duì)于一些基礎(chǔ)的 DOM 操作,還是需要了解學(xué)習(xí)。

曾經(jīng)我們討論過這樣一個(gè)問題:Vue 這些開發(fā)框架,用它們渲染頁面,真的就比不用開發(fā)框架快嗎?

其實(shí)這個(gè)問題很好回答的,開發(fā)框架只是優(yōu)化了項(xiàng)目的開發(fā)效率,對(duì)于瀏覽器的渲染速度,其實(shí)并沒有想象中的那么快。

目前的前后端分離的開發(fā)模式,大致分為兩種:一是瀏覽器端運(yùn)行 Vue 等單頁應(yīng)用框架,由前端發(fā)起接口請(qǐng)求渲染頁面從而實(shí)現(xiàn)前后端分離;二是在服務(wù)端運(yùn)行 node.js ,由 node.js 發(fā)起接口請(qǐng)求渲染頁面,從而實(shí)現(xiàn)前后端分離。這兩種開發(fā)模式都繞不開的一個(gè)問題是:都要請(qǐng)求一次接口,http 通信都是很耗時(shí)的,相比于古老的后端渲染來說,其實(shí)已經(jīng)算很慢了。

那么就有一個(gè)問題:為何 node.js 不直接寫 SQL 查詢數(shù)據(jù)庫(kù)?嘿。。這個(gè)問題嘛就涉及到方方面面了,比如全棧開發(fā)和前端開發(fā)的價(jià)格那可不一樣,會(huì) JS 的前端和會(huì) SQL 的前端又不一樣了,前端踩過線去干后端的事這就矛盾來了...

廢話太多了,咱們進(jìn)入正題~~

DOM 查詢

DOM 查詢就是要找到 HTML 中的某個(gè)節(jié)點(diǎn),方便對(duì)這個(gè)節(jié)點(diǎn)干一些不可描述的事~~

比如說給這個(gè) HTML 元素加點(diǎn)小料,給 HTML 元素?fù)Q個(gè)皮膚,讓 HTML 元素動(dòng)起來啥的。要干這些事的前提是要找對(duì) HTML 元素,找錯(cuò)了就亂套了~~

/* 
通過 ID 選擇
查找頁面上 id="header" 的第一個(gè)元素
比如:
<div id="header"></div>
<section id="header"></section>
<header id="header"></header>
只要是 ID  為 header 的元素,都能選擇,但是只會(huì)找第一個(gè)
*/
const header = document.getElementById("header");
/*
通過類名選擇(返回動(dòng)態(tài)集合)
查找頁面上 class="btn" 的所有元素
比如:
<button class="btn"></button>
<a class="btn"></a>
<div class="btn"></div>
*/
const buttons = document.getElementsByClassName("btn"); 
/*
通過標(biāo)簽名選擇
與 getElementsByClassName 類似,只是選擇頁面上所有的 img 元素
*/
const images = document.getElementsByTagName("img");
/*
通過 CSS 選擇器(靜態(tài)集合)
此方法可以使用 CSS 選擇器來獲取頁面上的元素
比如可以使用 .item:nth-child(3) 選擇頁面上 class="item" 的第三個(gè)元素
*/
const firstButton = document.querySelector(".btn:first-child");
const allButtons = document.querySelectorAll(".btn");

動(dòng)態(tài)集合 vs 靜態(tài)集合

顧名思義,動(dòng)態(tài)集合就是會(huì)根據(jù) HTML 內(nèi)容變化而變化,而靜態(tài)集合就是不管 HTML 怎么變,都是選擇器方法執(zhí)行的那一瞬間就確定了他的樣子。

<ul class="list">
  <li class="item">1</li>
  <li class="item">2</li>
  <li class="item">3</li>
  <li class="item">4</li>
  <li class="item">5</li>
</ul>
<script>
  const item1 = document.querySelectorAll('.item')
  const item2 = document.getElementsByClassName('item')
  // 創(chuàng)建一個(gè)新的 li 元素
  const li = document.createElement('li')
  li.classList.add('item')
  // list 元素中新增一個(gè) li 元素
  document.querySelector('.list').appendChild(li)
  console.log('?? ~ item2:', item1); // NodeList(5)
  console.log('?? ~ item:', item2); // HTMLCollection(6)
</script>

節(jié)點(diǎn)關(guān)系

除了直接查找節(jié)點(diǎn)的方法外,還能通過獲取到的節(jié)點(diǎn)關(guān)系屬性,取到相對(duì)于的節(jié)點(diǎn),比如:

parentNode 用于選擇父節(jié)點(diǎn)。
childNodes 用于選擇所有子節(jié)點(diǎn),包括所有的子內(nèi)容(比如:注釋、空格、文本內(nèi)容等)。
children 僅選擇元素節(jié)點(diǎn)內(nèi)容。

firstChild 選擇第一個(gè)子內(nèi)容,可以是注釋、文本內(nèi)容、換行符等。
lastChild 選擇最后一個(gè)子內(nèi)容,可以是注釋、文本內(nèi)容、換行符等。
firstElementChild 選擇第一個(gè)元素節(jié)點(diǎn)。
lastElementChild 選擇最后一個(gè)元素節(jié)點(diǎn)。

nextSibling 選擇當(dāng)前節(jié)點(diǎn)后一個(gè)內(nèi)容,可以是注釋、文本內(nèi)容、換行符等。
previousSibling 選擇當(dāng)前節(jié)點(diǎn)前一個(gè)內(nèi)容,可以是注釋、文本內(nèi)容、換行符等。
nextElementSibling 選擇當(dāng)前節(jié)點(diǎn)后一個(gè)元素節(jié)點(diǎn)。
previousElementSibling 選擇當(dāng)前節(jié)點(diǎn)前一個(gè)元素節(jié)點(diǎn)。

<ul class="list">1122
  <!-- 注釋 -->
  <li class="item">1</li>
  <li class="item">2</li>
  321<li class="item">3</li>123
  <li class="item">4</li>
  <li class="item">5</li>
</ul>
<script>
  const parentNode = document.querySelector('.item:nth-child(3)').parentNode
  console.log('?? ~ parentNode:', parentNode); // 獲得 ul.list 
  const childNodes = document.querySelector('.list').childNodes
  console.log('?? ~ childNodes:', childNodes); // 獲得所有的子內(nèi)容 [text, comment, text, li.item, text, li.item, text, li.item, text, li.item, text, li.item, text]
  const children = document.querySelector('.list').children
  console.log('?? ~ children:', children); // 獲取所有的 .item 元素 [li.item, li.item, li.item, li.item, li.item]
  const firstChild = document.querySelector('.list').firstChild
  console.log('?? ~ firstChild:', firstChild); // 獲得文本 11122
  const lastChild = document.querySelector('.list').lastChild
  console.log('?? ~ lastChild:', lastChild); // 獲得最后的換行符 \n
  const firstElementChild = document.querySelector('.list').firstElementChild
  console.log('?? ~ firstElementChild:', firstElementChild); // 獲得第一個(gè) li.item
  const lastElementChild = document.querySelector('.list').lastElementChild
  console.log('?? ~ lastElementChild:', lastElementChild); // 獲最后一個(gè) li.item
  const nextSibling = document.querySelector('.item:nth-child(3)').nextSibling
  console.log('?? ~ nextSibling:', nextSibling); // 獲得文本 123
  const previousSibling = document.querySelector('.item:nth-child(3)').previousSibling
  console.log('?? ~ previousSibling:', previousSibling); // 獲得文本 321
  const nextElementSibling = document.querySelector('.item:nth-child(3)').nextElementSibling
  console.log('?? ~ nextElementSibling:', nextElementSibling); // 獲得第四個(gè) li.item
  const previousElementSibling = document.querySelector('.item:nth-child(3)').previousElementSibling
  console.log('?? ~ previousElementSibling:', previousElementSibling); // 獲得第二個(gè) li.item
</script>

轉(zhuǎn)自https://www.cnblogs.com/linx/p/18947426


該文章在 2025/7/4 9:59:00 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

国产一线二线有限公司| 一区二区三区日本精品视频| 国产精品久久久久久久久久久久电影| 日韩,欧美,国产,成人在线| www.madou.AV麻豆| 蜜臀丝袜av在线| 成人免费大香蕉视频在线观看| 无码日韩插B| 欧洲亚洲zxyy桃视频蜜在线视频| Av 综合在线网| 91人妻久久久精品中文字幕| 上司毛片| 中文天堂资源在线| 亚洲激情深夜福利| 国产精品二十四页| 久久久偷拍色| 亚洲AV无码专区在线观看ky| 最近中文一区二区三区| 91久久中文字幕| 一区二区三区四区国产欧美| 69亚洲| 欧美一区二区三区不卡小视频| 中文字幕亚洲日韩另类一区二区| 黄频美女视频免费观看| 九99操逼逼| 蜜臀在线好看| AV日韩影院| 欧美精品乱码久久久久竹菊| www.超碰cao porn| 国产无码3p| 亚洲老女人性生视频| 洲成人综合网| 久久久久4hu最新网址| 特黄午夜成人影院| 欧美日韩国产 一页| 粉嫩一区二区三区| 亚色国产| 欧美婷色| AvV美女在线| 日韩亚洲大片一区| 人妻久久久电影|