概述
splitText方法可以根据指定的偏移量将一个文本
节点分割成前后两个独立的兄弟节点.
语法
replacementNode = textnode.splitText(offset)
参数
replacementNode
会指向分割之后的后一个文本节点.offset
是指定的偏移量,值为从0开始到字符串长度的整数.
异常
- INDEX_SIZE_ERR
- 如果指定的偏移量小于0或者大于原文本节点中所包含字符串的长度,则抛出这个异常.
- NO_MODIFICATION_ALLOWED_ERR
- 如果,原文本节点只读,则抛出这个异常.
例子
下面的例子中,一个<p>元素所包含的文本节点将会被分割成两个文本节点,
然后在这两个节点中间插入一个<span>
元素.
<body> <p id="p">foobar</p> <script type="text/javascript"> var p = document.getElementById('p'); var textnode = p.firstChild; // 将原文本节点分割成为内容分别为foo和bar的两个文本节点 var replacementNode = textnode.splitText(3); // 创建一个包含了内容为' span contents '的文本节点的span元素 var span = document.createElement('span'); span.appendChild(document.createTextNode(' span contents ')); // 将span元素插入到后一个文本节点('bar')的前面 p.insertBefore(span, replacementNode); // 现在的HTML结构成了<p id="p">foo <span>span contents</span> bar</p> </script> </body>
附注
如果指定的偏移量刚好等于原文本节点所包含字符串的长度,则返回一个内容为空的文本节点.
分割后的文本节点还可以使用Node.normalize
方法来合并.