摘要:是的標(biāo)準(zhǔn)所有瀏覽器公共遵守的標(biāo)準(zhǔn)是各個(gè)瀏覽器廠商根據(jù)在各自瀏覽器上的實(shí)現(xiàn)表現(xiàn)為不同瀏覽器定義有差別實(shí)現(xiàn)方式不同是對(duì)象,而非對(duì)象節(jié)點(diǎn)節(jié)點(diǎn)分為兩個(gè)文本節(jié)點(diǎn)和元素節(jié)點(diǎn)子節(jié)點(diǎn)是文本節(jié)點(diǎn)和元素節(jié)點(diǎn)都計(jì)算的假設(shè)我們用給加背景顏色,就會(huì)報(bào)錯(cuò),因?yàn)槲谋镜墓?jié)
DOM 是 W3C 的標(biāo)準(zhǔn); [所有瀏覽器公共遵守的標(biāo)準(zhǔn)]
BOM 是 各個(gè)瀏覽器廠商根據(jù) DOM
在各自瀏覽器上的實(shí)現(xiàn);[表現(xiàn)為不同瀏覽器定義有差別,實(shí)現(xiàn)方式不同]
window 是 BOM 對(duì)象,而非 js 對(duì)象;
DOM節(jié)點(diǎn)
節(jié)點(diǎn)分為兩個(gè):文本節(jié)點(diǎn)和元素節(jié)點(diǎn);
子節(jié)點(diǎn):
childNodes是文本節(jié)點(diǎn)和元素節(jié)點(diǎn)都計(jì)算的; 假設(shè)我們用childNodes給li加背景顏色,就會(huì)報(bào)錯(cuò),因?yàn)槲谋镜墓?jié)點(diǎn)沒(méi)有style的; 可以用nodeType來(lái)進(jìn)行選擇節(jié)點(diǎn)類型; window.onload=function() { var oUl=document.getElementById("ul1") for (var i=0;i文本節(jié)點(diǎn) //當(dāng)彈窗 nodeType=1 ->元素節(jié)點(diǎn) if(oUl.childNodes[i].nodeType==1) { oUl.childNodes[i].style.background="red"; } }
}
nodeType==3 –> 是文本節(jié)點(diǎn);nodeType==1–> 是元素節(jié)點(diǎn); 我們只需元素的節(jié)點(diǎn)就可以了,可以用if的語(yǔ)言來(lái)判斷.
children:
如果不這么用,也可以用children: 這不需要處理文本節(jié)點(diǎn)和元素節(jié)點(diǎn);僅僅會(huì)計(jì)算元素節(jié)點(diǎn); 子節(jié)點(diǎn)只計(jì)算一層,子節(jié)點(diǎn)里面包含的內(nèi)部子節(jié)點(diǎn)是不計(jì)算的;
父節(jié)點(diǎn):
parentNode 可返回某節(jié)點(diǎn)的父節(jié)點(diǎn)(獲取的是結(jié)構(gòu)上的父級(jí));
offsetParent 距離該子元素最近的進(jìn)行過(guò)定位的父元素;
首位子節(jié)點(diǎn):
firstChild;//兼容IE firstElementChild;//兼容FF 解決辦法: 1): if判斷瀏覽器; 2): var oFirst = oUl.firstChild||oUl.firstElementChild; lastChild;//兼容IE lastElementChild;//兼容FF 解決辦法同上;
兄弟節(jié)點(diǎn):
nextSibling;//兼容IE nextElementSibling;//兼容FF 解決辦法: 1): if判斷瀏覽器; 2): var oFirst = oUl.nextSibling||oUl.nextElementSibling; previousSibling;//兼容IE previousElementSibling;//兼容FF 解決辦法同上;
DOM方式操作元素屬性:
getAttribute(名稱);//獲取元素屬性; setAttribute(名稱,值);//設(shè)置元素屬性; removeAttribute(名稱);//刪除元素屬性; 用className選擇元素: function getByClass(oParent,sClass){ var aEle = oParent.getElementsByTagName("*"); var aResult=[]; for (var i = 0; i < aEle.length; i++) { if(aEle[i].className==sClass){ aResult.push(aEle[i]); } }; return aResult; } window.onload=function(){ var oUl = document.getElementById("ul1"); var oBox = getByClass(oUl,"box"); for (var i = 0; i < oBox.length; i++) { oBox[i].style.background="red"; }; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90169.html
摘要:它是輕量級(jí)的,與特定于瀏覽器的實(shí)現(xiàn)細(xì)節(jié)分離。由于本身已經(jīng)是抽象,因此虛擬實(shí)際上是抽象的抽象。它允許在這個(gè)抽象的世界中進(jìn)行計(jì)算,并跳過(guò)真正的那些緩慢的操作。 前言 目前主流的前端框架React和Vue中都用到了Virtual DOM這個(gè)技術(shù),而Virtual DOM到底是什么,可能很多人和我一樣,概念上還是模糊。本文主要介紹DOM和Virtual DOM的基本概念及個(gè)人理解。 以下的D...
摘要:它是輕量級(jí)的,與特定于瀏覽器的實(shí)現(xiàn)細(xì)節(jié)分離。由于本身已經(jīng)是抽象,因此虛擬實(shí)際上是抽象的抽象。它允許在這個(gè)抽象的世界中進(jìn)行計(jì)算,并跳過(guò)真正的那些緩慢的操作。 前言 目前主流的前端框架React和Vue中都用到了Virtual DOM這個(gè)技術(shù),而Virtual DOM到底是什么,可能很多人和我一樣,概念上還是模糊。本文主要介紹DOM和Virtual DOM的基本概念及個(gè)人理解。 以下的D...
摘要:什么是虛擬舉例說(shuō)明如果網(wǎng)頁(yè)中有一個(gè)表格,表頭是姓名,年級(jí),分?jǐn)?shù)。即我們用虛擬的結(jié)構(gòu)替換需要處理的結(jié)構(gòu),對(duì)虛擬的進(jìn)行操作之后再進(jìn)行渲染,就成為了真實(shí)的數(shù)據(jù)。當(dāng)狀態(tài)變更的時(shí)候用修改后的新渲染的的對(duì)象和舊的虛擬對(duì)象作對(duì)比,記錄著兩棵樹(shù)的差異。 虛擬DOM 可以看看這個(gè)文章如何理解虛擬DOM? - 戴嘉華的回答 - 知乎 https://www.zhihu.com/questio... 深度剖...
摘要:什么是虛擬舉例說(shuō)明如果網(wǎng)頁(yè)中有一個(gè)表格,表頭是姓名,年級(jí),分?jǐn)?shù)。即我們用虛擬的結(jié)構(gòu)替換需要處理的結(jié)構(gòu),對(duì)虛擬的進(jìn)行操作之后再進(jìn)行渲染,就成為了真實(shí)的數(shù)據(jù)。當(dāng)狀態(tài)變更的時(shí)候用修改后的新渲染的的對(duì)象和舊的虛擬對(duì)象作對(duì)比,記錄著兩棵樹(shù)的差異。 虛擬DOM 可以看看這個(gè)文章如何理解虛擬DOM? - 戴嘉華的回答 - 知乎 https://www.zhihu.com/questio... 深度剖...
摘要:為此也做了一些學(xué)習(xí)簡(jiǎn)單的侃一侃虛擬到底是什么虛擬詳解二什么是虛擬虛擬首次產(chǎn)生是框架最先提出和使用的,其卓越的性能很快得到廣大開(kāi)發(fā)者的認(rèn)可,繼之后也在其核心引入了虛擬的概念。所謂的虛擬到底是什么也就是通過(guò)語(yǔ)言來(lái)描述一段代碼。 隨著Vue和React的風(fēng)聲水起,伴隨著諸多框架的成長(zhǎng),虛擬DOM漸漸成了我們經(jīng)常議論和討論的話題。什么是虛擬DOM,虛擬DOM是如何渲染的,那么Vue的虛擬Dom...
閱讀 3115·2023-04-25 15:02
閱讀 2806·2021-11-23 09:51
閱讀 2030·2021-09-27 13:47
閱讀 1984·2021-09-13 10:33
閱讀 957·2019-08-30 15:54
閱讀 2640·2019-08-30 15:53
閱讀 2853·2019-08-29 13:58
閱讀 881·2019-08-29 13:54