首页 » DOM » normalize() 合并文本节点

normalize() 合并文本节点

如果在一个包含两个或多个文本节点的父元素上调用normalize()方法,则会将所有文本节点合并成一个节点,结果节点的nodeValue等于将合并前每个文本节点的nodeValue值拼接起来的值。

var element = document.createElement("div");
element.className = "message";
var textNode = document.createTextNode("Hello wordl!");
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!"

浏览器在解析文档时永远不会创建相邻的文本节点。这种情况只会作为执行DOM操作的结果出现。

在某些情况下,执行normalize()方法会导致IE6崩溃。不过,在IE6后来的补丁中,可能已经修复了这个问题。IE7及更高版本中不存在这个问题。

此文章发表在 DOM. 将 固定链接 加入收藏.