2016-08-16 124 views

回答

6

文本節點會是這樣:

<p> 
    <span>foo</span> 
    bar 
</p> 

<p>是一個節點,<span>是一個節點,那麼什麼是"bar"? →這是一個文本節點。

使用DOM API,它可以創建空的文本,或兩個相鄰的文本節點:

var wrapper = document.createElement("div"); 

wrapper.appendChild(document.createTextNode("Part 1")); 
wrapper.appendChild(document.createTextNode("Part 2")); 

在HTML中,將僅僅是<div>Part 1Part2</div>,但對DOM是兩個獨立的文本節點,這是...奇怪的。

Node.normalize正常化這可以消除這種低效的異常;它會將兩個文本節點合併爲一個,並刪除完全爲空的文本節點。

5

考慮:

p element 
    text node containing "" 
p element 
    text node containing "Hello, " 
    text node containing "world" 

將它的文本節點轉換

p element 
p element 
    text node containing "Hello, world" 

段內本身以外,沒有內容,則完全刪除。

兩個相鄰的文本節點通過組合文本連接在一起形成單個文本節點。

+0

你能否在你的答案中加上一個html例子 – Graham

+3

由於HTML不允許你明確表達文本節點:不,我不能。 – Quentin

+0

那麼,他們如何到達那裏? – Graham