什么是DOM?
JavaScript三個(gè)組成部分之一——文檔對(duì)象模型(DOM)
官方定義:DOM 為文檔提供了結(jié)構(gòu)化表示婿屹,并定義了如何通過腳本來訪問文檔結(jié)構(gòu)灭美,
目的其實(shí)就是為了能讓js操作html元素而制定的一個(gè)規(guī)范
DOM樹:可以更好的理解DOM
由結(jié)構(gòu)圖中我們可以看到,整個(gè)文檔就是一個(gè)文檔節(jié)點(diǎn)
標(biāo)簽 昂利、標(biāo)記届腐、元素、屬性都屬于節(jié)點(diǎn)
而每一個(gè)HMTL標(biāo)簽都是一個(gè)元素節(jié)點(diǎn)
標(biāo)簽中的文字則是文字節(jié)點(diǎn)
標(biāo)簽的屬性是屬性節(jié)點(diǎn)
一切都是節(jié)點(diǎn)……
訪問節(jié)點(diǎn) :
getElementById()?????????????????????id訪問節(jié)點(diǎn)
getElementsByTagName()??? ????標(biāo)簽訪問節(jié)點(diǎn)
getElementsByClassName()?? ???類名訪問節(jié)點(diǎn)页眯,有兼容性問題(主流瀏覽器支持梯捕,ie 6 7 8?不認(rèn)識(shí))
類名訪問節(jié)點(diǎn)的兼容寫要熟練
節(jié)點(diǎn)訪問關(guān)系:
父節(jié)點(diǎn):parentNode
??? window.onload = function(){
??????? var x = document.getElementById("x");
??????? x.onclick = function(){
??????????? this.parentNode.style.display = "none";
??????????? // 關(guān)掉的是他的 父節(jié)點(diǎn)
??????? }
??? }
兄弟節(jié)點(diǎn)(同級(jí)關(guān)系,用的很少):
nextSibling? 下一個(gè)兄弟 ? ? ie 6 7 8 認(rèn)識(shí)
nextElementSibling??其他瀏覽器認(rèn)識(shí)的
previousSibling ?上一個(gè)兄弟????ie 6 7 8 認(rèn)識(shí)
previousElementSibling????其他瀏覽器認(rèn)識(shí)的
想要兼容 ? ?可以用 ? ? || ? ? 合寫
var div = one.nextElementSibling || one.nextSibling;div.style.backgroundColor = "red";
必須先寫 正常瀏覽器? 后寫? ie 6 7 8
子節(jié)點(diǎn):
childNodes????選出全部的子節(jié)點(diǎn)
childNodes:它是標(biāo)準(zhǔn)屬性窝撵,它返回指定元素的子元素集合,包括HTML節(jié)點(diǎn)襟铭,所有屬性碌奉,文本節(jié)點(diǎn)
火狐谷歌等高本版(標(biāo)準(zhǔn)瀏覽器)會(huì)把換行也看做是子節(jié)點(diǎn)
待續(xù)...