【javascript】DOM-節(jié)點(diǎn)層次-Text類型&Comment類型

Text類型

  • 文本節(jié)點(diǎn)由Text 類型表示,包含的是可以照字面解釋的純文本內(nèi)容荚守。純文本中可以包含轉(zhuǎn)義后的HTML 字符,但不能包含HTML 代碼。

  • Text 節(jié)點(diǎn)具有以下特征:

    • nodeType 的值為3忍法;
    • nodeName 的值為"#text";
    • nodeValue 的值為節(jié)點(diǎn)所包含的文本榕吼;
    • parentNode 是一個(gè)Element饿序;
    • 不支持(沒(méi)有)子節(jié)點(diǎn)。
  • 可以通過(guò)nodeValue 屬性或data屬性訪問(wèn)Text節(jié)點(diǎn)中包含的文本羹蚣,這兩個(gè)屬性中包含的值相同原探。

  • 使用下列方法可以操作節(jié)點(diǎn)中的文本。

    • appendData(text):將text 添加到節(jié)點(diǎn)的末尾顽素。
    • deleteData(offset, count):從offset 指定的位置開(kāi)始刪除count 個(gè)字符咽弦。
    • insertData(offset, text):在offset 指定的位置插入text。
    • replaceData(offset,count,text):用text替換從offset指定的位置開(kāi)始到offset+count 為止處的文本戈抄。
    • splitText(offset):從offset 指定的位置將當(dāng)前文本節(jié)點(diǎn)分成兩個(gè)文本節(jié)點(diǎn)离唬。
    • substringData(offset, count):提取從offset 指定的位置開(kāi)始到offset+count 為止處的字符串。
<!-- 沒(méi)有內(nèi)容划鸽,也就沒(méi)有文本節(jié)點(diǎn) -->
<div></div>
<!-- 有空格输莺,因而有一個(gè)文本節(jié)點(diǎn) -->
<div> </div>
<!-- 有內(nèi)容,因而有一個(gè)文本節(jié)點(diǎn)-->
<div>Hello World!</div>
var textNode = div.firstChild; //或者div.childNodes[0]
div.firstChild.nodeValue = "Some other message";

1裸诽、創(chuàng)建文本節(jié)點(diǎn)

  • 使用document.createTextNode()創(chuàng)建新文本節(jié)點(diǎn)嫂用,這個(gè)方法接受一個(gè)參數(shù)——要插入節(jié)點(diǎn)
    中的文本。
var textNode = document.createTextNode("<strong>Hello</strong> world!");
  • 除非把新節(jié)點(diǎn)添加到文檔樹(shù)中已經(jīng)存在的節(jié)點(diǎn)中丈冬,否則我們不會(huì)在瀏覽器窗口中看到新節(jié)點(diǎn)嘱函。
//創(chuàng)建一個(gè)<div>元素并向其中添加一條消息。
var element = document.createElement("div");
element.className = "message";
var textNode = document.createTextNode("Hello world!");
element.appendChild(textNode);
document.body.appendChild(element);

2埂蕊、規(guī)范化文本節(jié)點(diǎn)

  • normalize()是能夠?qū)⑾噜徫谋竟?jié)點(diǎn)合并的方法
  • 如果在一個(gè)包含兩個(gè)或多個(gè)文本節(jié)點(diǎn)的父元素上調(diào)用normalize()方法往弓,則會(huì)將所有文本節(jié)點(diǎn)合并成一個(gè)節(jié)點(diǎn)疏唾,結(jié)果節(jié)點(diǎn)的nodeValue等于將合并前每個(gè)文本節(jié)點(diǎn)的nodeValue值拼接起來(lái)的值。
var element = document.createElement("div");
element.className = "message";

var textNode = document.createTextNode("Hello world!");
element.appendChild(textNode);

var anotherTextNode = document.createTextNode("Yippee!");
element.appendChild(anotherTextNode);

document.body.appendChild(element);

alert(element.childNodes.length); //2

element.normalize();
alert(element.childNodes.length); //1
alert(element.firstChild.nodeValue); // "Hello world!Yippee!"

3函似、分割文本節(jié)點(diǎn)

  • splitText()方法會(huì)將一個(gè)文本節(jié)點(diǎn)分成兩個(gè)文本節(jié)點(diǎn)槐脏,即按照指定的位置分割nodeValue 值。
  • 原來(lái)的文本節(jié)點(diǎn)將包含從開(kāi)始到指定位置之前的內(nèi)容撇寞,新文本節(jié)點(diǎn)將包含剩下的文本顿天。這個(gè)方法會(huì)返回一個(gè)新文本節(jié)點(diǎn),該節(jié)點(diǎn)與原節(jié)點(diǎn)的parentNode 相同蔑担。
var element = document.createElement("div");
element.className = "message";

var textNode = document.createTextNode("Hello world!");
element.appendChild(textNode);

document.body.appendChild(element);

var newNode = element.firstChild.splitText(5);
alert(element.firstChild.nodeValue); //"Hello"
alert(newNode.nodeValue); //" world!"
alert(element.childNodes.length); //2
  • 分割文本節(jié)點(diǎn)是從文本節(jié)點(diǎn)中提取數(shù)據(jù)的一種常用DOM 解析技術(shù)牌废。

Comment類型

  • 注釋在DOM中是通過(guò)Comment 類型來(lái)表示的。Comment 節(jié)點(diǎn)具有下列特征:

    • nodeType 的值為8啤握;
    • nodeName 的值為"#comment"鸟缕;
    • nodeValue 的值是注釋的內(nèi)容;
    • parentNode 可能是Document 或Element排抬;
    • 不支持(沒(méi)有)子節(jié)點(diǎn)叁扫。
  • Comment 類型與Text 類型繼承自相同的基類,因此它擁有除splitText()之外的所有字符串操作方法畜埋。

  • 可以通過(guò)nodeValue 或data屬性來(lái)取得注釋的內(nèi)容。注釋節(jié)點(diǎn)可以通過(guò)其父節(jié)點(diǎn)來(lái)訪問(wèn)畴蒲。

<div id="myDiv"><!--A comment --></div>
var div = document.getElementById("myDiv");
var comment = div.firstChild;
alert(comment.data); //"A comment"
  • 使用document.createComment()并為其傳遞注釋文本也可以創(chuàng)建注釋節(jié)點(diǎn)悠鞍。
var comment = document.createComment("A comment ");

-如果要訪問(wèn)注釋節(jié)點(diǎn),一定要保證它們是<html>元素的后代模燥。

好好學(xué)習(xí)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咖祭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔫骂,更是在濱河造成了極大的恐慌么翰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辽旋,死亡現(xiàn)場(chǎng)離奇詭異浩嫌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)补胚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門码耐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人溶其,你說(shuō)我怎么就攤上這事骚腥。” “怎么了瓶逃?”我有些...
    開(kāi)封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵束铭,是天一觀的道長(zhǎng)廓块。 經(jīng)常有香客問(wèn)我,道長(zhǎng)契沫,這世上最難降的妖魔是什么带猴? 我笑而不...
    開(kāi)封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮埠褪,結(jié)果婚禮上浓利,老公的妹妹穿的比我還像新娘。我一直安慰自己钞速,他們只是感情好贷掖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著渴语,像睡著了一般苹威。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驾凶,一...
    開(kāi)封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天牙甫,我揣著相機(jī)與錄音,去河邊找鬼调违。 笑死窟哺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的技肩。 我是一名探鬼主播且轨,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼虚婿!你這毒婦竟也來(lái)了旋奢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤然痊,失蹤者是張志新(化名)和其女友劉穎至朗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體剧浸,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锹引,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唆香。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粤蝎。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖袋马,靈堂內(nèi)的尸體忽然破棺而出初澎,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布碑宴,位于F島的核電站软啼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏延柠。R本人自食惡果不足惜祸挪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贞间。 院中可真熱鬧贿条,春花似錦、人聲如沸增热。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)峻仇。三九已至公黑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摄咆,已是汗流浹背凡蚜。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吭从,地道東北人朝蜘。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像涩金,于是被迫代替她去往敵國(guó)和親芹务。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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