DOM(document object model)文檔對(duì)象模型

php中,DOM是PHP語(yǔ)言與xml/html標(biāo)簽之間溝通的橋梁,在js中也同樣,是js與xml/html之間溝通的一個(gè)橋梁。所以學(xué)習(xí)DOM就是通過(guò)js來(lái)對(duì)HTML標(biāo)簽內(nèi)容做增、刪、改、查等操作。

元素節(jié)點(diǎn)獲取

//通過(guò)ID獲取具體節(jié)點(diǎn)
var it = document.getElementById('username');

//通過(guò)標(biāo)簽訪問(wèn)具體節(jié)點(diǎn),獲取的形式為數(shù)組或集合形式
var hh = document.getElementsByTagName('h2');
//通過(guò)name標(biāo)簽訪問(wèn)具體節(jié)點(diǎn),獲取的形式為數(shù)組或集合形式
var it = document.getElementsByName('username');

文本節(jié)點(diǎn)獲取

<div>today is very<span>good</span></div>

若想獲取這個(gè)文本節(jié)點(diǎn),需要借助元素節(jié)點(diǎn)先獲取div,然后在獲得其內(nèi)部文本節(jié)點(diǎn)

var it3 = document.getElementsByTagName('div')[0];
//獲得div內(nèi)部第一個(gè)子節(jié)點(diǎn)對(duì)象并獲得文本信息
console.log(it3.lastChild.wholeText);

屬性節(jié)點(diǎn)獲取

節(jié)點(diǎn).attributes:把該節(jié)點(diǎn)所有屬性以數(shù)組形式返回
節(jié)點(diǎn).nodeTyoe:返回節(jié)點(diǎn)類型,1.元素節(jié)點(diǎn) 2.屬性節(jié)點(diǎn) 3.文本節(jié)點(diǎn) 4.document節(jié)點(diǎn)

屬性值操作
//獲取屬性值
節(jié)點(diǎn).getAttribute(屬性名稱);
//設(shè)置屬性值
節(jié)點(diǎn).setAttrubute(屬性名稱,值);

兄弟節(jié)點(diǎn)獲取

firstChild,lastChild:子節(jié)點(diǎn)獲得第一個(gè)/最后一個(gè)節(jié)點(diǎn)
nextSibling:獲得下一個(gè)兄弟節(jié)點(diǎn)
previousSibling:獲得上一個(gè)兄弟節(jié)點(diǎn)
childNodes:獲取全部子節(jié)點(diǎn),主流瀏覽器會(huì)把空白節(jié)點(diǎn)算上,而老版本IE不會(huì)

父節(jié)點(diǎn)獲取

parentNode:獲取當(dāng)前元素父節(jié)點(diǎn)


節(jié)點(diǎn)創(chuàng)建和追加

父節(jié)點(diǎn).appendChild(子節(jié)點(diǎn));添加節(jié)點(diǎn)
父節(jié)點(diǎn).insertBefore(要插入的節(jié)點(diǎn),插入位置的節(jié)點(diǎn))
父節(jié)點(diǎn).replaceChild(要替換的節(jié)點(diǎn),被替換的節(jié)點(diǎn))
通過(guò)js動(dòng)態(tài)創(chuàng)建節(jié)點(diǎn)如下:

<ul><li mean="熱情">red</li></ul>

具體js代碼:

//創(chuàng)建ui標(biāo)簽
var ull = document.createElement('ul');
//創(chuàng)建li標(biāo)簽
var lii = document.createElement('li');
//創(chuàng)建文本
var txt = document.createTextNode('red');
//為lii設(shè)置mean屬性
lii.setAttribute('mean','熱情');
//給lii節(jié)點(diǎn)添加文本
lii.appendChild(txt);
//給ull節(jié)點(diǎn)添加lii節(jié)點(diǎn)
ull.appendChild(lii);
//給body節(jié)點(diǎn)添加ull
document.body.appendChild(ull);

節(jié)點(diǎn)復(fù)制操作

被復(fù)制節(jié)點(diǎn).cloneNode(false/true):false淺復(fù)制(本身節(jié)點(diǎn)) true深復(fù)制(本身和內(nèi)部子節(jié)點(diǎn)都復(fù)制)

節(jié)點(diǎn)刪除

節(jié)點(diǎn).removeChild(子節(jié)點(diǎn))
子節(jié)點(diǎn).parentNode.removeChild(子節(jié)點(diǎn))


DOM對(duì)CSS樣式操作

  1. 獲取CSS樣式
    節(jié)點(diǎn).style.css.樣式名稱
  2. 設(shè)置CSS樣式(有就修改,沒(méi)有則添加)
    元素節(jié)點(diǎn).style.css.樣式名稱 = 值

注意:
DOM操作CSS樣式只能操作"行內(nèi)樣式"(CSS樣式分為行內(nèi)、內(nèi)部、外部)

操作的屬性如果帶橫杠,需要把橫杠去掉,并把緊接著的字母大寫(xiě)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用來(lái)將標(biāo)記型文檔封裝成對(duì)象,并將標(biāo)記型文檔中的所有的內(nèi)容(標(biāo)簽,文本,屬性等)都封裝成對(duì)象。封裝成對(duì)象的目...
    xinkule閱讀 574評(píng)論 0 0
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,160評(píng)論 1 92
  • 之前通過(guò)深入學(xué)習(xí)DOM的相關(guān)知識(shí),看了慕課網(wǎng)DOM探索之基礎(chǔ)詳解篇這個(gè)視頻(在最近看第三遍的時(shí)候,準(zhǔn)備記錄一點(diǎn)東西...
    微醺歲月閱讀 4,761評(píng)論 2 61
  • 有理數(shù)是進(jìn)入中學(xué)階段后的第一課,基礎(chǔ)地位不容動(dòng)搖,本次測(cè)試范圍為,正負(fù)數(shù),有理數(shù)分類,數(shù)軸,絕對(duì)值,相反數(shù),題目考...
    宜人安心閱讀 690評(píng)論 0 1
  • 第七章:關(guān)于詛咒 陰沉沉的天際,電閃雷鳴,豆大的雨點(diǎn),伴隨著狂風(fēng)席卷而來(lái),如數(shù)千萬(wàn)只鬼魅的手爪,恐嚇般的敲打著屋頂...
    阿當(dāng)芙亞閱讀 487評(píng)論 1 1

友情鏈接更多精彩內(nèi)容