摘要:用對(duì)象的方式來(lái)描述元素,規(guī)范包含了節(jié)點(diǎn)操作節(jié)點(diǎn)遍歷前一個(gè)兄弟節(jié)點(diǎn)后一個(gè)兄弟節(jié)點(diǎn)節(jié)點(diǎn)類(lèi)型元素節(jié)點(diǎn)文本節(jié)點(diǎn)元素節(jié)點(diǎn)遍歷無(wú)法遍歷到文本節(jié)點(diǎn)獲取節(jié)點(diǎn)獲取的節(jié)點(diǎn)是動(dòng)態(tài)的,會(huì)實(shí)時(shí)改變不支持寫(xiě)一個(gè)兼容函數(shù)獲取的是靜態(tài)的,節(jié)點(diǎn)改變時(shí)它無(wú)法改變修改節(jié)點(diǎn)不支持
DOM
節(jié)點(diǎn)操作Document Object Model 用對(duì)象的方式來(lái)描述html元素, API規(guī)范 包含了DOM Core DOM HTML DOM
Style Dom Event
節(jié)點(diǎn)遍歷
.parentNode .firstChild .lastChild .previousSibling //前一個(gè)兄弟節(jié)點(diǎn) .nextSibling //后一個(gè)兄弟節(jié)點(diǎn)
節(jié)點(diǎn)類(lèi)型
ELEMENT_NODE //元素節(jié)點(diǎn) TEXT_NODE //文本節(jié)點(diǎn)
元素節(jié)點(diǎn)遍歷
p.firstElementChild // 無(wú)法遍歷到文本節(jié)點(diǎn) .lastElementChild .nextElementSibling .previousElementSibling
獲取節(jié)點(diǎn)
getElementById() getElementsByTagName() //獲取的節(jié)點(diǎn)是動(dòng)態(tài)的,會(huì)實(shí)時(shí)改變 getElementsByClassName() // IE678 不支持 寫(xiě)一個(gè)兼容函數(shù) function getElementsByClassName(root, className){ if(root.getElementsByClassName){ return root.getElementsByClassName(className); }else{ var elements = document.getElementsByTagName("*"); var result = []; for(var i = 0, element; element = elements[i]; i++){ if(hasClassName(element, className)){ result.push(element) } } return result; } } querySelector/All() 獲取的list是靜態(tài)的,節(jié)點(diǎn)改變時(shí)它無(wú)法改變
修改節(jié)點(diǎn)
textContent user.textContent = "kash"; // IE9不支持 innerText // firefox不支持
創(chuàng)建節(jié)點(diǎn)
創(chuàng)建Element節(jié)點(diǎn) document.createElement() 創(chuàng)建Text節(jié)點(diǎn) document.createTextNode()
插入節(jié)點(diǎn)
appendChild() insertBefore() ul.insertBefore(li, ul.firstBefore);
刪除節(jié)點(diǎn)
n.parentNode.removeChild(n);
替換節(jié)點(diǎn)
n.parentNode.replaceChild(target, n);
innerHTML
內(nèi)存泄露 安全問(wèn)題
總結(jié)
每個(gè)html屬性對(duì)應(yīng)DOM屬性
property accessor 屬性訪問(wèn)器
//讀取屬性input.className(); //u-text input["id"] //username //寫(xiě)入屬性 input.value = "www.XXX.com"; input.disabled = true; //通用性差,擴(kuò)張性差,好處:取到的都是實(shí)用對(duì)象
getAttribute/setAttribute
var attribute = element.getAttribute(attributeName);
樣式操作input.getAttribute("class"); //"u-text"; input.setAttribute("value", "wwww.xxx.com"); input.setAttribute("disabled","")//默認(rèn)為true //如果屬性出現(xiàn)Boolean,那肯定是true // 獲取到的僅字符串,通用性好
更新樣式
1.一種是直接操作 element.style.color = "red"; 更新一個(gè)屬性需喲一跳語(yǔ)句 不是我們熟悉的css element.style.cssText = "color:red"; 樣式混在邏輯中 2.另一種更新class element.className += ""; 一次性更新很多的樣式(類(lèi)似于換膚) 更換樣式表:把需要更換的樣式分離 element.href = ".css"
獲取樣式
element.style.color //只能獲取到內(nèi)嵌樣式 window.getComputedStyle(element).color //IE9不支持
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81220.html
摘要:向影子樹(shù)添加的任何內(nèi)容都將成為宿主元素的本地元素,包括,這就是影子實(shí)現(xiàn)樣式作用域的方式。 這是專(zhuān)門(mén)探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 17 篇。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 如果你錯(cuò)過(guò)了前面的章節(jié),可以在這里找到它們: JavaScript 是如何工作的:引擎,運(yùn)行時(shí)和調(diào)用堆棧的概述! JavaScript 是如何工作...
摘要:但上述兩個(gè)情況中都是同一份文檔。提示對(duì)象是對(duì)象的一部分,可通過(guò)屬性對(duì)其進(jìn)行訪問(wèn)。返回包含指定節(jié)點(diǎn)的子節(jié)點(diǎn)的集合,該集合為即時(shí)更新的集合。對(duì)象在中,對(duì)象表示元素屬性節(jié)點(diǎn)的無(wú)序集合。 DOM簡(jiǎn)介( Document Object Model 文檔對(duì)象模型) W3C W3C 文檔對(duì)象模型 (DOM) 是中立于平臺(tái)和語(yǔ)言的接口,它允許程序和腳本動(dòng)態(tài)地訪問(wèn)和更新文檔的內(nèi)容、結(jié)構(gòu)和樣式。W3C D...
摘要:在其沙箱中提供了將文本轉(zhuǎn)換成文檔對(duì)象模型的功能。瀏覽器使用與該形狀對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)來(lái)表示文檔。我們將這種表示方式稱為文檔對(duì)象模型,或簡(jiǎn)稱。樹(shù)回想一下第章中提到的語(yǔ)法樹(shù)。語(yǔ)言的語(yǔ)法樹(shù)有標(biāo)識(shí)符值和應(yīng)用節(jié)點(diǎn)。元素表示標(biāo)簽的節(jié)點(diǎn)用于確定文檔結(jié)構(gòu)。 來(lái)源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項(xiàng)目原文:The Document Object Model 譯者:飛龍 協(xié)議...
摘要:刨根問(wèn)底,這里說(shuō)的成本,到底高在哪兒呢什么是文檔對(duì)象模型什么是可能很多人第一反應(yīng)就是等標(biāo)簽至少我是,但要知道,是,是,對(duì)象模型,是為提供的。操作具體的成本,說(shuō)到底是造成瀏覽器回流和重繪,從而消耗資源。 從我接觸前端到現(xiàn)在,一直聽(tīng)到的一句話:操作DOM的成本很高,不要輕易去操作DOM。尤其是React、vue等MV*框架的出現(xiàn),數(shù)據(jù)驅(qū)動(dòng)視圖的模式越發(fā)深入人心,jQuery時(shí)代提供的強(qiáng)大便...
摘要:刨根問(wèn)底,這里說(shuō)的成本,到底高在哪兒呢什么是文檔對(duì)象模型什么是可能很多人第一反應(yīng)就是等標(biāo)簽至少我是,但要知道,是,是,對(duì)象模型,是為提供的。操作具體的成本,說(shuō)到底是造成瀏覽器回流和重繪,從而消耗資源。 從我接觸前端到現(xiàn)在,一直聽(tīng)到的一句話:操作DOM的成本很高,不要輕易去操作DOM。尤其是React、vue等MV*框架的出現(xiàn),數(shù)據(jù)驅(qū)動(dòng)視圖的模式越發(fā)深入人心,jQuery時(shí)代提供的強(qiáng)大便...
閱讀 1385·2021-11-22 09:34
閱讀 2591·2021-11-12 10:36
閱讀 1124·2021-11-11 16:55
閱讀 2337·2020-06-22 14:43
閱讀 1477·2019-08-30 15:55
閱讀 1988·2019-08-30 15:53
閱讀 1775·2019-08-30 10:50
閱讀 1231·2019-08-29 12:15