js節(jié)點摘要

屬性:

Attributes ????????????????????????????????????????????????????????????存儲節(jié)點的屬性列表(只讀)

childNodes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 存儲節(jié)點的子節(jié)點列表(只讀)

dataType ????????????????????????????????????????????????????????????返回此節(jié)點的數據類型

Definition ????????????????????????????????????????????????????????????以DTD或XML模式給出的節(jié)點的定義(只讀)

Doctype? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定文檔類型節(jié)點(只讀)

documentElement? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回文檔的根元素(可讀寫)

firstChild? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回當前節(jié)點的第一個子節(jié)點(只讀)

Implementation? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回XMLDOMImplementation對象

lastChild? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回當前節(jié)點最后一個子節(jié)點(只讀)

nextSibling? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回當前節(jié)點的下一個兄弟節(jié)點(只讀)

nodeName? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回節(jié)點的名字(只讀)

nodeType? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回節(jié)點的類型(只讀)

nodeTypedValue? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?存儲節(jié)點值(可讀寫)

nodeValue? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回節(jié)點的文本(可讀寫)

ownerDocument? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回包含此節(jié)點的根文檔(只讀)

parentNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回父節(jié)點(只讀)

Parsed? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回此節(jié)點及其子節(jié)點是否已經被解析(只讀)

Prefix? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回名稱空間前綴(只讀)

preserveWhiteSpace? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定是否保留空白(可讀寫)

previousSibling? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回此節(jié)點的前一個兄弟節(jié)點(只讀)

Text? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回此節(jié)點及其后代的文本內容(可讀寫)

url ????????????????????????????????????????????????????????????????????????返回最近載入的XML文檔的URL(只讀)

Xml? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回節(jié)點及其后代的XML表示(只讀)

方法:

appendChild? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?為當前節(jié)點添加一個新的子節(jié)點,放在最后的子節(jié)點后

cloneNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回當前節(jié)點的拷貝

createAttribute? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建新的屬性

createCDATASection? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建包括給定數據的CDATA段

createComment? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建一個注釋節(jié)點

createDocumentFragment? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建DocumentFragment對象

createElement? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建一個元素節(jié)點

createEntityReference? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建EntityReference對象

createNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建給定類型,名字和命名空間的節(jié)點

createPorcessingInstruction? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建操作指令節(jié)點

createTextNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建包括給定數據的文本節(jié)點

getElementsByTagName? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回指定名字的元素集合

hasChildNodes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回當前節(jié)點是否有子節(jié)點

insertBefore? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在指定節(jié)點前插入子節(jié)點

Load? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?導入指定位置的XML文檔

loadXML? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?導入指定字符串的XML文檔

removeChild? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?從子結點列表中刪除指定的子節(jié)點

replaceChild? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?從子節(jié)點列表中替換指定的子節(jié)點

Save? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?把XML文件存到指定節(jié)點

selectNodes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?對節(jié)點進行指定的匹配,并返回匹配節(jié)點列表

selectSingleNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?對節(jié)點進行指定的匹配,并返回第一個匹配節(jié)點

transformNode? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?使用指定的樣式表對節(jié)點及其后代進行轉換

transformNodeToObject ????????????????????????????????????????使用指定的樣式表將節(jié)點及其后代轉換為對象


每個節(jié)點都有一個childNodes屬性调俘,其中保存著一個NodeList對象枢贿。NodeList是一種類數組對象,用于保存一組有序的節(jié)點,可以通過位置來訪問這些節(jié)點。請注意蓬豁,雖然可以通過方括號語法來訪問NodeList的值,而且這個對象也有l(wèi)ength屬性菇肃,但它并不是Array的實例地粪。NodeList對象的獨特之處在于,它實際上是基于DOM結構動態(tài)執(zhí)行查詢的結果琐谤,因此DOM結構的變化能夠自動反映在NodeList對象中蟆技。我們常說,NodeList是有生命、有呼吸的對象质礼,而不是在我們第一次訪問它們的某個瞬間拍攝下來的一張快照聊品。下面的例子展示了如何訪問保存在NodeList中的節(jié)點——可以通過方括號,也可以使用item()方法几苍。

var firstChild=someNode.childNodes[0];

var secondChild=someNode.childNodes.item(1);

var count=someNode.childNodes.length;


每個節(jié)點都有一個parentNode屬性翻屈,該屬性指向文檔樹中的父節(jié)點。包含在childNodes列表中的所有節(jié)點都具有相同的父節(jié)點妻坝,因此它們的parentNode屬性都指向同一個節(jié)點伸眶。此外,包含在childNodes列表中的每個節(jié)點相互之間都是同胞節(jié)點刽宪。通過使用列表中每個節(jié)點的previousSibling和nextSibling屬性厘贼,可以訪問同一列表中的其他節(jié)點。列表中第一個節(jié)點的previousSibling屬性值為null圣拄,而列表中最后一個節(jié)點的nextSibling屬性的值同樣也為null嘴秸。當然,如果列表中只有一個節(jié)點庇谆,那么該節(jié)點的previousSibling和nextSibling都為null岳掐。父節(jié)點與其第一個和最后一個子節(jié)點之間也存在特殊關系。父節(jié)點的firstChild和lastChild屬性分別指向其childNodes列表中的第一個和最后一個節(jié)點饭耳。其中:

someNode.firstChild的值始終等于someNode.childNodes[0]

someNode.lastChild的值始終等于someNode.childNodes[someNode.childNodes.length-1]

在只有一個子節(jié)點的情況下串述,firstChild和lastChild指向同一個節(jié)點

如果沒有子節(jié)點,那么firstChild和lastChild的值均為null

明確這些關系能夠對我們查找和訪問文檔結構中的節(jié)點提供極大的便利寞肖。

在反映這些關系的所有屬性當中纲酗,childNodes屬性與其他屬性相比更方便一些,因為只須使用簡單的關系指針新蟆,就可以通過它訪問文檔樹中的任何節(jié)點觅赊。另外,hasChildNodes()也是一個非常有用的方法琼稻,這個方法在節(jié)點包含一或多個子節(jié)點的情況下返回true吮螺,應該說,這是比查詢childNodes列表的length屬性更簡單的方法欣簇。

所有節(jié)點都有的最后一個屬性是ownerDocument规脸,該屬性指向表示整個文檔的文檔節(jié)點。這種關系表示的是任何節(jié)點都屬于它所在的文檔熊咽,任何節(jié)點都不能同時存在于兩個或更多個文檔中莫鸭。通過這個屬性,我們可以不必在節(jié)點層次中通過層層回溯到達頂端横殴,而是可以直接訪問文檔節(jié)點被因。

操作節(jié)點

因為關系指針都是只讀的卿拴,所以DOM提供了一些操作節(jié)點的方法。其中梨与,最常用的方法是appendChild()堕花,用于向childNodes列表的末尾添加一個節(jié)點。添加節(jié)點后粥鞋,childNodes的新增節(jié)點缘挽、父節(jié)點及以前的最后一個子節(jié)點的關系指針都會相應地得到更新。更新完成后呻粹,appendChild()返回新增的節(jié)點壕曼。來看下面的例子:

var returnedNode = someNode.appendChild(newNode);

alert(returnedNode == newNode);

alert(someNode.lastChild == newNode);


如果傳入到appendChild()中的節(jié)點已經是文檔的一部分了,那結果就是將該節(jié)點從原來的位置轉移到新位置等浊。即使可以將DOM樹看成是由一系列指針連接起來的腮郊,但任何DOM節(jié)點也不能同時出現在文檔中的多個位置上。因此筹燕,如果在調用appendChild()時傳入了父節(jié)點的第一個子節(jié)點轧飞,那么該節(jié)點就會成為父節(jié)點的最后一個子節(jié)點。

如果需要把節(jié)點放在childNodes列表中某個特定的位置上撒踪,而不是放在末尾过咬,那么可以使用insertBefore()方法。這個方法接受兩個參數:要插入的節(jié)點和作為參照的節(jié)點糠涛。插入節(jié)點后援奢,被插入的節(jié)點會變成參照節(jié)點的前一個同胞節(jié)點(previousSibling)兼犯,同時被方法返回忍捡。如果參照節(jié)點是null,則insertBefore()與appendChild()執(zhí)行相同的操作切黔。如下面的例子所示砸脊。

插入后成為最后一個子節(jié)點

var returnedNode = someNode.insertBefore(newNode, null);

alert(newNode == someNode.lastChild);

插入后成為第一個子節(jié)點

var returnedNode = someNode.insertBefore(newNode, someNode.firstChild);

alert(returnedNode == newNode);

alert(newNode == someNode.firstChild);

插入到最后一個子節(jié)點前面

var returnedNode = someNode.insertBefore(newNode, someNode.lastChild);

alert(newNode == someNode.childNodes[someNode.childNodes.length-2]);

前面介紹的appendChild()和insertBefore()方法都只插入節(jié)點,不會移除節(jié)點纬霞。而下面要介紹的replaceChild()方法接受的兩個參數是:要插入的節(jié)點和要替換的節(jié)點凌埂。要替換的節(jié)點將由這個方法返回并從文檔樹中被移除,同時由要插入的節(jié)點占據其位置诗芜。來看下面的例子瞳抓。

替換第一個子節(jié)點

var returnedNode = someNode.replaceChild(newNode, someNode.firstChild);

替換最后一個子節(jié)點

var returnedNode = someNode.replaceChild(newNode, someNode,lastChild);

在使用replaceChild()插入一個節(jié)點時,該節(jié)點的所有關系指針都會從被它替換的節(jié)點復制過來伏恐。盡管從技術上講孩哑,被替換的節(jié)點仍然還在文檔中,但它在文檔中已經沒有了自己的位置翠桦。如果只想移除而非替換節(jié)點横蜒,可以使用removeChild()方法。這個方法接受一個參數,即要移除的節(jié)點丛晌。被移除的節(jié)點將成為方法的返回值仅炊,如下面的例子所示。

移除第一個子節(jié)點

var formerFirstChild = someNode.removeChild(someNode.firstChild);

移除最后一個子節(jié)點

var formerLastChild = someNode.removeChild(someNode.lastChild);

與使用replaceChild()方法一樣澎蛛,通過removeChild()移除的節(jié)點仍然為文檔所有抚垄,只不過在文檔中已經沒有了自己的位置。前面介紹的四個方法操作的都是某個節(jié)點的子節(jié)點谋逻,也就是說督勺,要使用這幾個方法必須先取得父節(jié)點(使用parentNode屬性)。另外斤贰,并不是所有類型的節(jié)點都有子節(jié)點智哀,如果在不支持子節(jié)點的節(jié)點上調用了這些方法,將會導致錯誤發(fā)生荧恍。

————————————————

版權聲明:本文為CSDN博主「CKM10086」的原創(chuàng)文章瓷叫,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明送巡。

原文鏈接:https://blog.csdn.net/CKM10086/article/details/103532262

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末摹菠,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子骗爆,更是在濱河造成了極大的恐慌次氨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摘投,死亡現場離奇詭異煮寡,居然都是意外死亡,警方通過查閱死者的電腦和手機犀呼,發(fā)現死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門幸撕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人外臂,你說我怎么就攤上這事坐儿。” “怎么了宋光?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵貌矿,是天一觀的道長。 經常有香客問我罪佳,道長逛漫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任菇民,我火速辦了婚禮尽楔,結果婚禮上投储,老公的妹妹穿的比我還像新娘。我一直安慰自己阔馋,他們只是感情好玛荞,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呕寝,像睡著了一般勋眯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上下梢,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天客蹋,我揣著相機與錄音,去河邊找鬼孽江。 笑死讶坯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的岗屏。 我是一名探鬼主播辆琅,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼这刷!你這毒婦竟也來了婉烟?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤暇屋,失蹤者是張志新(化名)和其女友劉穎似袁,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體咐刨,經...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡昙衅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了所宰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绒尊。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖仔粥,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情蟹但,我是刑警寧澤躯泰,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站华糖,受9級特大地震影響麦向,放射性物質發(fā)生泄漏。R本人自食惡果不足惜客叉,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一诵竭、第九天 我趴在偏房一處隱蔽的房頂上張望话告。 院中可真熱鬧,春花似錦卵慰、人聲如沸沙郭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至讨彼,卻和暖如春鲤嫡,著一層夾襖步出監(jiān)牢的瞬間送挑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工暖眼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惕耕,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓诫肠,卻偏偏與公主長得像赡突,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子区赵,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容

  • ??DOM(文檔對象模型)是針對 HTML 和 XML 文檔的一個 API(應用程序編程接口)笼才。 ??DOM 描繪...
    霜天曉閱讀 3,655評論 0 7
  • 文檔對象模型DOM(Document Object Model)定義訪問和處理HTML文檔的標準方法漱受。DOM 將H...
    閃電西蘭花閱讀 369評論 0 0
  • 本篇是基于《JavaScript高級程序設計(第3版)》DOM相關章節(jié)做的整理與歸納,概述了DOM的常見節(jié)點類型及...
    查查查查查查克閱讀 2,516評論 2 7
  • 本章內容 理解包含不同層次節(jié)點的 DOM 使用不同的節(jié)點類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 644評論 0 1
  • 變量命名骡送、聲明昂羡、賦值 1.必須以字母、下劃線或美元符號開頭摔踱,后面可以跟字母虐先、下劃線、美元符號和數字派敷。2.變量名區(qū)分...
    wq04200閱讀 633評論 0 1