📅  最后修改于: 2023-12-03 14:41:46.233000             🧑  作者: Mango
setEndAfter()
方法是 HTML DOM 范围对象的一个方法,用于将范围的结束位置设置为指定节点之后。
range.setEndAfter(node);
其中,range
是一个 HTML DOM 范围对象,node
是一个节点对象,表示将范围的结束位置设置为该节点之后。
node
:一个节点对象,表示范围的结束位置将被设置为该节点之后。setEndAfter()
方法没有返回值。
假设我们有以下 HTML 文档,并且需要将第一个段落元素之后的部分设为一个范围:
<p>第一个段落</p>
<ul>
<li>列表项 1</li>
<li>列表项 2</li>
</ul>
<p>第二个段落</p>
那么可以使用以下 JavaScript 代码来实现:
// 获取第一个段落元素和列表元素
var p = document.getElementsByTagName('p')[0];
var ul = document.getElementsByTagName('ul')[0];
// 创建一个范围
var range = document.createRange();
// 将范围的开始位置设为第一个段落元素
range.setStartBefore(p);
// 将范围的结束位置设为列表元素之后
range.setEndAfter(ul);
// 将范围中的内容设置为红色背景
range.surroundContents(document.createElement('span'));
// 将范围插入到文档中
document.body.appendChild(range.extractContents());
以上代码将第一个段落元素和列表元素之间的内容设为红色背景,并将其插入到文档中。
node
参数为 null
,则将范围的结束位置设置为其父节点的最后一个子节点之后。node
参数不在范围的起始节点的同一文档树中,则会抛出 INVALID_NODE_TYPE_ERR
异常。