📜  HTML DOM 范围 setEndBefore() 方法(1)

📅  最后修改于: 2023-12-03 15:15:33.900000             🧑  作者: Mango

HTML DOM 范围 setEndBefore() 方法介绍

简介

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 元素。最后输出范围的文本内容,发现范围为空,因为范围的起始点和结束点重合了,没有选中任何文本。

注意事项
  1. 调用 setEndBefore() 方法前,必须先调用 setStart() 方法设置范围的起始边界。
  2. 如果给定节点是范围的起始点,则范围将为空。
  3. 如果给定节点是范围的结束点,则范围将包含从起始点到给定节点前一个节点之间的所有节点。