Dom API

什么是DOM锯蛀?

說白了DOM就是瀏覽器為JavaScript提供的一系列接口(通過window.documnet提供的),通過這些接口我們可以操作web頁面放前。 但DOM并不是編程語言葡公,它是文檔對象的模型袜啃,該模型是獨立于編程語言的彼水。比如我們在Python中也可以操作DOM:

import xml.dom.minidom as m
doc = m.parse("C:\\Projects\\Py\\chap1.xml");
doc.nodeName # DOM property of document object;
p_list = doc.getElementsByTagName("para");

所以Web前端常講的DOM API (web 或 XML 頁面) = DOM + JS (腳本語言)

DOM 創(chuàng)建

DOM節(jié)點(Node)通常對應(yīng)于一個標(biāo)簽崔拥,一個文本,或者一個HTML屬性凤覆。
DOM節(jié)點有一個nodeType
屬性用來表示當(dāng)前元素的類型链瓦,它是一個整數(shù):

  • Element,元素
  • Attribute盯桦,屬性
  • Text慈俯,文本

DOM節(jié)點創(chuàng)建最常用的便是document.createElement和document.createTextNode
方法:

var el1 = document.createElement('div');
var el2 = document.createElement('input');
var node = document.createTextNode('hello world!');

DOM 查詢

document提供了兩種Query方法:

/ 返回當(dāng)前文檔中第一個類名為 "myclass" 的元素
var el = document.querySelector(".myclass");

// 返回一個文檔中所有的class為"note"或者 "alert"的div元素
var els = document.querySelectorAll("div.note, div.alert");

// 獲取元素
var el = document.getElementById('xxx');
var els = document.getElementsByClassName('highlight');
var els = document.getElementsByTagName('td');

Element也提供了很多相對于元素的DOM導(dǎo)航方法:

// 獲取父元素、父節(jié)點
var parent = ele.parentElement;
var parent = ele.parentNode;

// 獲取子節(jié)點拥峦,子節(jié)點可以是任何一種節(jié)點贴膘,可以通過nodeType來判斷
var nodes = ele.children;    

// 查詢子元素
var els = ele.getElementsByTagName('td');
var els = ele.getElementsByClassName('highlight');

// 當(dāng)前元素的第一個/最后一個子元素節(jié)點
var el = ele.firstElementChild;
var el = ele.lastElementChild;

// 下一個/上一個兄弟元素節(jié)點
var el = ele.nextElementSibling;
var el = ele.previousElementSibling;

DOM 更改

// 添加、刪除子元素
ele.appendChild(el);
ele.removeChild(el);

// 替換子元素
ele.replaceChild(el1, el2);

// 插入子元素
parentElement.insertBefore(newElement, referenceElement);

屬性操作

// 獲取一個{name, value}的數(shù)組
var attrs = el.attributes;

// 獲取事镣、設(shè)置屬性
var c = el.getAttribute('class');
el.setAttribute('class', 'highlight');

// 判斷步鉴、移除屬性
el.hasAttribute('class');
el.removeAttribute('class');

// 是否有屬性設(shè)置
el.hasAttributes(); 

http://harttle.com/2015/10/01/javascript-dom-api.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揪胃,一起剝皮案震驚了整個濱河市璃哟,隨后出現(xiàn)的幾起案子氛琢,更是在濱河造成了極大的恐慌,老刑警劉巖随闪,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阳似,死亡現(xiàn)場離奇詭異,居然都是意外死亡铐伴,警方通過查閱死者的電腦和手機(jī)撮奏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來当宴,“玉大人畜吊,你說我怎么就攤上這事』福” “怎么了玲献?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梯浪。 經(jīng)常有香客問我捌年,道長,這世上最難降的妖魔是什么挂洛? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任礼预,我火速辦了婚禮,結(jié)果婚禮上虏劲,老公的妹妹穿的比我還像新娘托酸。我一直安慰自己,他們只是感情好柒巫,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布励堡。 她就那樣靜靜地躺著,像睡著了一般吻育。 火紅的嫁衣襯著肌膚如雪念秧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天布疼,我揣著相機(jī)與錄音摊趾,去河邊找鬼。 笑死游两,一個胖子當(dāng)著我的面吹牛砾层,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贱案,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼肛炮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侨糟,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤碍扔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后秕重,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體不同,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年溶耘,在試婚紗的時候發(fā)現(xiàn)自己被綠了二拐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡凳兵,死狀恐怖百新,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庐扫,我是刑警寧澤饭望,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站聚蝶,受9級特大地震影響杰妓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碘勉,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一巷挥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧验靡,春花似錦倍宾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辞州,卻和暖如春怔锌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背变过。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工埃元, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人媚狰。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓岛杀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親崭孤。 傳聞我的和親對象是個殘疾皇子类嗤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容