文本:splitText() 方法
splitText()
是 Text
接口的方法,它会在指定偏移量处将 Text
节点拆分为两个节点,并将这两个节点作为同级节点保留在树中。
拆分后,当前节点包含直至指定偏移量点的所有内容,而新创建的相同类型的节点包含剩余文本。新创建的节点将返回给调用方。如果原始节点有父节点,则新节点将插入为原始节点的下一个同级节点。如果偏移量等于原始节点的长度,则新创建的节点没有数据。
可以使用 Node.normalize()
方法连接分离的文本节点。
语法
js
newNode = textNode.splitText(offset)
参数
offset
-
在文本节点中打断的位置之前的索引。
返回值
返回新创建的 Text
节点,该节点包含指定偏移量点之后的文本。
异常
IndexSizeError
DOMException
-
如果指定的偏移量为负数或大于节点文本中 16 位单元的数量,则抛出此异常。
NoModificationAllowedError
DOMException
-
如果节点为只读,则抛出此异常。
示例
在此示例中,<p>
的文本被拆分为两个文本节点,并在它们之间插入一个 <u>
。
html
<p>foobar</p>
js
const p = document.querySelector("p");
// Get contents of <p> as a text node
const foobar = p.firstChild;
// Split 'foobar' into two text nodes, 'foo' and 'bar',
// and save 'bar' as a const
const bar = foobar.splitText(3);
// Create a <u> element containing ' new content '
const u = document.createElement("u");
u.appendChild(document.createTextNode(" new content "));
// Add <u> before 'bar'
p.insertBefore(u, bar);
// The result is: <p>foo<u> new content </u>bar</p>
规范
规范 |
---|
DOM 标准 # ref-for-dom-text-splittext① |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 它所属的
Text
接口。 - 相反的方法:
Node.normalize
。