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