📅  最后修改于: 2023-12-03 15:15:33.900000             🧑  作者: Mango
setEndBefore() 方法用于将范围的结束边界设置为给定元素的前一个节点。范围结束边界在其结束位置节点的后面。如果给定节点是范围的起始点,则范围将为空。
range.setEndBefore(element)
element:必需,范围的结束边界将设置在此元素的前一个节点上。
无。
<!DOCTYPE html>
<html>
<head>
<title>setEndBefore() 方法示例</title>
</head>
<body>
<h1>这是一个标题</h1>
<p>这是一段文本</p>
<script type="text/javascript">
var range = document.createRange();
var h1 = document.getElementsByTagName('h1')[0];
var p = document.getElementsByTagName('p')[0];
range.setStart(h1, 0);
range.setEnd(p, 1);
range.setEndBefore(h1);
console.log(range.toString()); // 输出:空字符串
</script>
</body>
</html>
上面的示例中,首先创建了一个范围 range,然后用 setStart() 方法将其起始边界设置为 h1 元素的第一个子节点,将其结束边界设置为 p 元素的第二个子节点。接着,使用 setEndBefore() 方法将范围的结束边界设置为 h1 元素的前一个节点,也就是 body 元素。最后输出范围的文本内容,发现范围为空,因为范围的起始点和结束点重合了,没有选中任何文本。