快速了解JavaScript的DOM模型( 八 )


一旦将节点添加到文档树中,浏览器就会立即呈现 。
一旦使用appendChild()等方法插入相邻的同胞文本节点时,会导致相邻文本节点混乱 。
而在一个包含两个或多个文本节点的父元素上调用normalize()方法,就会将所有文本节点合并成一个节点 。
var element = document.createElement("div");element.className = "message";var textNode1 = document.createTextNode("Hello, ");element.appendChild(textNode1);var textNode2 = document.createTextNode("Pandora!");element.appendChild(textNode2);document.body.appendChild(element);console.log(element.childNodes.length);// 2element.normalize();console.log(element.childNodes.length);// 1console.log(element.firstChild.nodeValue);// "Hello, Pandora!"浏览器在解析文档时永远不会创建相邻的文本节点 。这种情况只会作为执行DOM操作的结果出现 。
还有一个与normalize()相反的方法splitText(offset):将一个文本节点分成两个文本节点 。
var element = document.createElement("div");element.className = "message";var textNode = document.createTextNode("Hello, Pandora!");element.appendChild(textNode);document.body.appendChild(element);var newNode = element.firstChild.splitText(6);console.log(element.firstChild.nodeValue);// "Hello,"console.log(newNode.nodeValue);// " Pandora!"console.log(element.childNodes.length);// 2



推荐阅读