摘要:描繪了一個(gè)層次化的節(jié)點(diǎn)樹節(jié)點(diǎn)關(guān)系。它允許開發(fā)人員查找添加修改刪除頁(yè)面的某一部分。獲取的是所有的標(biāo)簽返回包含帶有指定類名的所有元素的節(jié)點(diǎn)列表。返回匹配的元素集合同上如果沒有匹配項(xiàng),返回空的節(jié)點(diǎn)數(shù)組。
什么是DOM?
Document Object Model的縮寫,就是以層次化的模式來(lái)描述網(wǎng)頁(yè)的方式。
Document就是指文檔(網(wǎng)頁(yè)文件)
Object是指把網(wǎng)頁(yè)文檔看做一個(gè)整體
Model模型模式
關(guān)于DOMDOM是針對(duì)HTML和XML文檔的一個(gè)API(應(yīng)用程序程序接口)。
DOM描繪了一個(gè)層次化的節(jié)點(diǎn)樹(節(jié)點(diǎn)關(guān)系)。
它允許開發(fā)人員查找、添加、修改、刪除頁(yè)面的某一部分。
DOM節(jié)點(diǎn)樹 DOM的屬性nodeName ——節(jié)點(diǎn)的名字;
nodeType —— 返回一個(gè)整數(shù),代表這個(gè)節(jié)點(diǎn)的類型,1-元素節(jié)點(diǎn),2-屬性節(jié)點(diǎn),3-文本節(jié)點(diǎn);
nodeValue —— 返回一個(gè)字符串,這個(gè)節(jié)點(diǎn)的值;
childNodes —— 返回一個(gè)數(shù)組,數(shù)組由元素節(jié)點(diǎn)的子節(jié)點(diǎn)構(gòu)成;
firstChild —— 返回第一個(gè)子節(jié)點(diǎn);
lastChild —— 返回最后一個(gè)子節(jié)點(diǎn);
nextSibling —— 返回目標(biāo)節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn),如果目標(biāo)節(jié)點(diǎn)后面沒有同屬于一個(gè)父節(jié)點(diǎn)的節(jié)點(diǎn),返回null;
previousSibling —— 返回目標(biāo)節(jié)點(diǎn)的前一個(gè)兄弟節(jié)點(diǎn),如果目標(biāo)節(jié)點(diǎn)前面沒有同屬于一個(gè)父節(jié)點(diǎn)的節(jié)點(diǎn),返回null;
parentNode —— 返回的節(jié)點(diǎn)永遠(yuǎn)是一個(gè)元素節(jié)點(diǎn),因?yàn)橹挥性毓?jié)點(diǎn)才有可能有子節(jié)點(diǎn),document節(jié)點(diǎn)將返回null;
DOM節(jié)點(diǎn)的類型nodeTypenodeType屬性返回節(jié)點(diǎn)類型的常數(shù)值。不同的類型對(duì)應(yīng)不同的常數(shù)值,12種類型分別對(duì)應(yīng)1到12的常數(shù)值
元素節(jié)點(diǎn) —— Node.ELEMENT_NODE(1)
屬性節(jié)點(diǎn) —— Node.ATTRIBUTE_NODE(2)
文本節(jié)點(diǎn) —— Node.TEXT_NODE(3)
CDATA節(jié)點(diǎn) —— Node.CDATA_SECTION_NODE(4)
實(shí)體引用名稱節(jié)點(diǎn) —— Node.ENTRY_REFERENCE_NODE(5)
實(shí)體名稱節(jié)點(diǎn) —— Node.ENTITY_NODE(6)
處理指令節(jié)點(diǎn) —— Node.PROCESSING_INSTRUCTION_NODE(7)
注釋節(jié)點(diǎn) —— Node.COMMENT_NODE(8)
文檔節(jié)點(diǎn) —— Node.DOCUMENT_NODE(9)
文檔類型節(jié)點(diǎn) —— Node.DOCUMENT_TYPE_NODE(10)
文檔片段節(jié)點(diǎn) —— Node.DOCUMENT_FRAGMENT_NODE(11)
DTD聲明節(jié)點(diǎn) —— Node.NOTATION_NODE(12)
DOM節(jié)點(diǎn)操作方法方法 | 描述 | 栗子 | 注意 |
---|---|---|---|
createElement() | 創(chuàng)建元素節(jié)點(diǎn) | var node = document.createElement("div"); | 創(chuàng)建的節(jié)點(diǎn)不會(huì)被自動(dòng)添加到文檔document里 |
createTextNode() | 創(chuàng)建文本節(jié)點(diǎn) | var val = document.createTextNode("text"); | 創(chuàng)建的節(jié)點(diǎn)不會(huì)被自動(dòng)添加到文檔document里 |
appendChild() | 插入節(jié)點(diǎn)到最后 | node.appendChild(val); | |
insertBefore() | 插入節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的前面 | node.insertBefore(_span, _p); | 節(jié)點(diǎn)在 節(jié)點(diǎn)前面插入,其中第二個(gè)參數(shù)是可選,如果第二個(gè)參數(shù)不寫,將默認(rèn)添加到文檔的最后,相當(dāng)于appendChild。 |
cloneNode(boolean) | 復(fù)制節(jié)點(diǎn) | node.cloneNode(true);/node.cloneNode(false) | 參數(shù)true,復(fù)制整個(gè)節(jié)點(diǎn)和里面的內(nèi)容;false,只復(fù)制節(jié)點(diǎn)不要里面的內(nèi)容,復(fù)制后的新節(jié)點(diǎn)不會(huì)被自動(dòng)插入到文檔。 |
removeChild() | 刪除節(jié)點(diǎn) | node.removeChild(_p); | |
getAttribute() | 獲取節(jié)點(diǎn)屬性 | node.getAttribute("title"); | |
setAttribute() | 設(shè)置節(jié)點(diǎn)屬性 | node.setAttribute("title","我是個(gè)美少女"); | class屬性不能這樣設(shè)置。 |
hasChildNodes | 判斷元素是否有子節(jié)點(diǎn) | node.hasChildNodes; | 返回布爾值。 |
replaceChild() | 替換子節(jié)點(diǎn) | var returnNode = ul.replaceChild(li,lis[1]); //用創(chuàng)建的li替換原來(lái)的第二個(gè)li | 用于替換節(jié)點(diǎn),接受兩個(gè)參數(shù),第一參數(shù)是要插入的節(jié)點(diǎn),第二個(gè)是要替換的節(jié)點(diǎn),返回被替換的節(jié)點(diǎn) |
document.getElementById() | 返回帶有指定ID的元素 | var element=document.getElementById("intro"); | |
document.getElementsByTagName() | 返回包含帶有指定標(biāo)簽名稱的所有元素的節(jié)點(diǎn)列表(集合/節(jié)點(diǎn)數(shù)組)。 | var element=document.getElementsByTagName("p"); | 獲取的是所有的p標(biāo)簽 |
document.getElementsByClassName() | 返回包含帶有指定類名的所有元素的節(jié)點(diǎn)列表。 | var element=document.getElementsByClassName("_p"); | 獲取的是所有的含有‘_p’類名的元素 |
document.getElementsByName() | 返回帶有指定名稱的對(duì)象的集合 | var x=document.getElementsByName("sex"); alert(x.length); | 查詢?cè)氐?name 屬性,比如單選框它有一組一樣的name值,所以返回的是一個(gè)元素的數(shù)組,而不是一個(gè)元素。 |
document.querySelector | 返回匹配的第一個(gè)元素 | var obj = document.querySelector("#id"); var obj = document.querySelector(".classname"); var obj = document.querySelector("div"); | 如果沒有匹配項(xiàng),返回null。 |
document.querySelectorAll | 返回匹配的元素集合 | 同上 | 如果沒有匹配項(xiàng),返回空的nodelist(節(jié)點(diǎn)數(shù)組)。 |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/84399.html
摘要:二原理每個(gè)都有兩個(gè),一個(gè)是新的,一個(gè)是原來(lái)的。三實(shí)現(xiàn)過(guò)程四算法的理解與實(shí)現(xiàn)本質(zhì)上就是在和之間做了一個(gè)緩存。將差異的應(yīng)用到真正的樹上對(duì)真實(shí)上的樹進(jìn)行深度優(yōu)先遍歷,在所有的差異列表中找出當(dāng)前遍歷的節(jié)點(diǎn)差異,然后根據(jù)不同進(jìn)行操作。 React Virtual DOM 一、概念 在react中,對(duì)于每個(gè)DOM對(duì)象都有一個(gè)相應(yīng)的虛擬DOM對(duì)象,相當(dāng)于DOM對(duì)象的輕量級(jí)副本 由于是Virtual...
摘要:在數(shù)據(jù)變化后要執(zhí)行的某個(gè)操作,而這個(gè)操作需要使用隨數(shù)據(jù)改變而改變的結(jié)構(gòu)的時(shí)候,這個(gè)操作都應(yīng)該放進(jìn)的回調(diào)函數(shù)中。這樣回調(diào)函數(shù)在更新完成后就會(huì)調(diào)用。 關(guān)于作者 程序開發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganmin.cn 最近剛寫...
摘要:在數(shù)據(jù)變化后要執(zhí)行的某個(gè)操作,而這個(gè)操作需要使用隨數(shù)據(jù)改變而改變的結(jié)構(gòu)的時(shí)候,這個(gè)操作都應(yīng)該放進(jìn)的回調(diào)函數(shù)中。這樣回調(diào)函數(shù)在更新完成后就會(huì)調(diào)用。 關(guān)于作者 程序開發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganmin.cn 最近剛寫...
摘要:關(guān)于異步應(yīng)該很多地方都說(shuō)過(guò),是單線程的,嚴(yán)格的說(shuō),是指引擎中負(fù)責(zé)解釋和執(zhí)行代碼的線程只有一個(gè),除此之外,其實(shí)還有事件觸發(fā)線程請(qǐng)求線程等,因此,應(yīng)該說(shuō)同步是單線程可能更準(zhǔn)確些。 作者:心葉時(shí)間:2019-03-08 09:45 我的理解 先列出我的理解,然后再?gòu)木唧w的例子中說(shuō)明: DOM操作本身應(yīng)該是同步的(當(dāng)然,我說(shuō)的是單純的DOM操作,不考慮ajax請(qǐng)求后渲染等) DOM操作之后導(dǎo)...
摘要:具體而言,就是每次數(shù)據(jù)發(fā)生變化,就重新執(zhí)行一次整體渲染。而給出了解決方案,就是。由于只關(guān)注,通過(guò)閱讀兩個(gè)庫(kù)的源碼,對(duì)于的定位有了更深一步的理解。第二個(gè)而且,技術(shù)本身不是目的,能夠更好地解決問(wèn)題才是王道嘛。 前言 React 好像已經(jīng)火了很久很久,以致于我們對(duì)于 Virtual DOM 這個(gè)詞都已經(jīng)很熟悉了,網(wǎng)上也有非常多的介紹 React、Virtual DOM 的文章。但是直到前不久...
摘要:最強(qiáng)大的特性之一就是簡(jiǎn)化了對(duì)元素的操作。從圖中,我們可以看出元素中父元素子元素之間的關(guān)系。被封裝到對(duì)象中的元素會(huì)被自動(dòng)地,隱式地循環(huán)遍歷。訪問(wèn)從上可知,返回的是對(duì)象,但是我們有時(shí)也希望直接對(duì)元素進(jìn)行操作。 DOM - Document Object Model,即文檔對(duì)象模型,它通過(guò)對(duì)象樹來(lái)展示 HTML 代碼。jQuery 最強(qiáng)大的特性之一就是簡(jiǎn)化了對(duì) DOM 元素的操作。 DOM...
閱讀 1392·2021-09-24 10:26
閱讀 1700·2019-08-30 14:14
閱讀 2114·2019-08-29 16:54
閱讀 373·2019-08-29 14:09
閱讀 1482·2019-08-29 12:55
閱讀 938·2019-08-28 18:13
閱讀 1588·2019-08-26 13:39
閱讀 2575·2019-08-26 11:43