五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《建議收藏》JS高級DOM操作一

2020-05-25 18:46 作者:MagnumHou  | 我要投稿

前端頁面分為三個部分:結(jié)構(gòu)HTML 表現(xiàn)CSS ?行為JavaScript

JS三個組成部分:

  • ECMAScript核心基礎(chǔ)(JS語法、常量、變量、數(shù)據(jù)類型、運算符、函數(shù)、內(nèi)置對象)

  • BOM(Browser Object Model) 瀏覽器對象模型 封裝操作瀏覽器相關(guān)的API(window.alert() ? window.prompt() ? window.setInterval() ? window.close())

  • DOM(Document Object Model)文檔對象模型 封裝的是操作文檔相關(guān)的API(document.getElementById() document.body ? document.documentElement ?document.title ?document.cookie)

DOM知識回顧:

什么是DOM?

DOM(Document Object Model)文檔對象模型 封裝的是html或xml操作文檔相關(guān)的API。

當(dāng)網(wǎng)頁被加載時,瀏覽器會創(chuàng)建頁面的文檔對象模型,這個模型被構(gòu)造位對象的樹,習(xí)慣稱為 DOM Tree。

DOM包含了所有的html標(biāo)簽元素、文本字符串、html屬性、注釋等等。

DOM HTML tree

利用DOM中提供的API,使程序有能力動態(tài)的訪問和更新文檔中的內(nèi)容、結(jié)構(gòu)和樣式,使頁面的交互性增強。


DOM應(yīng)用?

操作html、html屬性、css、事件等

獲取css外部樣式瀏覽器能力檢測?

?


二、節(jié)點相關(guān)屬性

DOM Tree中每一個對象都稱之為節(jié)點。如何去判斷這些節(jié)點呢?

所以DOM中提供相關(guān)的API,來獲取節(jié)點類型、節(jié)點名稱或節(jié)點值:

nodeType ? 返回節(jié)點類型,是一個數(shù)值

元素節(jié)點 - ?1

屬性節(jié)點 - 2

文本節(jié)點 - 3

注意:換行 ?空格 ?制表符都是文本節(jié)點

注釋節(jié)點 - 8

文檔節(jié)點 - 9

更多詳細(xì)節(jié)點https://www.w3school.com.cn/jsref/prop_node_nodetype.asp

nodeName ?返回節(jié)點名稱,標(biāo)簽的大寫形式(tagName)

nodeValue ? 返回節(jié)點值,不是所有的節(jié)點都會含有節(jié)點值

節(jié)點相關(guān)屬性
控制臺相關(guān)操作和結(jié)果


三、DOM層級訪問

根據(jù)節(jié)點類型,我們可以分為兩種情況進(jìn)行訪問:

一種情況是,包含所有的元素、屬性、文本、注釋等的節(jié)點樹,節(jié)點樹比較復(fù)雜,操作比較繁瑣。

一種情況是,僅僅只有元素,稱之為元素樹。元素樹更加的簡潔,查找和操作也更加便捷。

訪問層級關(guān)系介紹:

DOM層級關(guān)系類似于人類直系關(guān)系,有家譜的可以去看看。關(guān)系無非就是祖孫、父子、兄弟關(guān)系:

子節(jié)點:被嵌套進(jìn)去的下一級節(jié)點叫做子節(jié)點,子節(jié)點只有一個父節(jié)點。

父節(jié)點:子節(jié)點的上一級節(jié)點叫做父節(jié)點,父節(jié)點可以擁有任意數(shù)量的子節(jié)點。

祖先節(jié)點:里面具有嵌套節(jié)點的節(jié)點叫做祖先節(jié)點,包括父節(jié)點

后代節(jié)點:被嵌套進(jìn)去的所有層級節(jié)點都叫做后代節(jié)點,包括子節(jié)點

兄弟節(jié)點:擁有相同父節(jié)點的同級節(jié)點

根節(jié)點:一個html文檔一般只有一個根節(jié)點,根節(jié)點沒有父節(jié)點

節(jié)點樹層級訪問相關(guān)屬性:

parentNode ? 獲取當(dāng)前元素的父節(jié)點

childNodes ? ? 獲取當(dāng)前元素所有的子節(jié)點

這是一個類數(shù)組,可以通過指定索引去獲取對應(yīng)的節(jié)點

firstChild ?獲取當(dāng)前元素的第一個子節(jié)點

lastChild ? 獲取當(dāng)前元素的最后一個子節(jié)點

previousSibling ?獲取當(dāng)前元素的上一個兄弟節(jié)點

nextSibling ?獲取當(dāng)前元素的下一個兄弟節(jié)點

元素樹層級訪問相關(guān)屬性:

parentElement ? ? 獲取當(dāng)前元素的父元素

children ?獲取當(dāng)前元素的所有子元素(忽略了文本、注釋、空白節(jié)點等)

firstElementChild ?獲取當(dāng)前元素的第一個子元素

lastElementChild ?獲取當(dāng)前元素的最后一個子元素

previousElementSibling ?獲取當(dāng)前元素的上一個兄弟元素

nextElementSibling ?獲取當(dāng)前元素的下一個兄弟元素

html代碼
JS代碼
控制臺打印


四、獲取元素的方式

document.getElementById()

document.getElementsByClassName()

document.getElementsByTagName()

document.getElementsByName()

document.querySelector(selector) ? 通過指定的選擇器匹配符合條件的第一個元素

document.querySelectorAlll(selector) 通過指定的選擇器匹配符合條件的所有元素

獲取元素的方式
控制臺操作

五、DOM高級操作

DOM操作不但可以查找節(jié)點,還可以創(chuàng)建節(jié)點、復(fù)制節(jié)點、插入節(jié)點、刪除節(jié)點和替換節(jié)點。

5.1 創(chuàng)建節(jié)點

createElement('tagName') ?創(chuàng)建元素節(jié)點

createAttribute('attrName') ?創(chuàng)建屬性節(jié)點

createTextNode('string') 創(chuàng)建文本節(jié)點


5.2 追加節(jié)點

appendChild(childNode) ? 向指定節(jié)點結(jié)尾添加一個新的子節(jié)點

追加節(jié)點

插入和替換節(jié)點

insertBefore(newnode,oldnode) ? ?在已有的子節(jié)點的前面去插入一個新的節(jié)點

replaceChild(newnode,oldnode) ? 用新的節(jié)點去替換指定的子節(jié)點

插入和替換節(jié)點

5.4 克隆和刪除節(jié)點

cloneNode(boolean) ? 克隆節(jié)點

參數(shù) boolean 布爾值。默認(rèn)false,僅克隆當(dāng)前節(jié)點。如果設(shè)置為true,克隆當(dāng)前以及后代所有的節(jié)點。

removeChild(childNode) ?在指定節(jié)點中刪除一個子節(jié)點

克隆和刪除節(jié)點

remove() ?移除指定節(jié)點

第一種用法:不添加任何參數(shù),刪除當(dāng)前元素

第二種用法:添加一個索引參數(shù),刪除下拉列表中指定索引的項

HTML代碼
JS代碼


《建議收藏》JS高級DOM操作一的評論 (共 條)

分享到微博請遵守國家法律
英吉沙县| 收藏| 温泉县| 吕梁市| 崇仁县| 江西省| 青浦区| 渭南市| 延安市| 新安县| 肇东市| 陕西省| 久治县| 屯留县| 阳谷县| 高唐县| 谷城县| 都昌县| 克山县| 博客| 墨竹工卡县| 曲水县| 岚皋县| 高陵县| 方正县| 清丰县| 凌源市| 简阳市| 建宁县| 罗城| 绵阳市| 卢氏县| 酉阳| 宁城县| 博野县| 叙永县| 大竹县| 凌云县| 青铜峡市| 镇远县| 竹北市|