📜  HTML | DOM 输入范围对象(1)

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

HTML | DOM 输入范围对象

HTML DOM 输入范围对象(Document Object Model Range Object) 表示一个文档的一部分,可以是整个文档或文档的一个部分。它可以被用来表示一个文本范围、一个关键字范围、以及其它各种范围。

属性
  • startContainer:范围的起始容器节点。
  • startOffset:范围的起始偏移,表示 startContainer 内部的偏移位置。如果 startContainer 是一个文本节点,则它是从节点开头计算的字符位置; 如果它是一个元素节点,则它是子节点列表中的偏移位置。
  • endContainer:范围的结束容器节点。
  • endOffset:范围的结束偏移。如果 endContainer 是一个文本节点,则它是从节点开头计算的字符位置; 如果它是一个元素节点,则它是子节点列表中的偏移位置。
  • collapsed: 范围是否是折叠状态,即是否选择了空文本。
  • commonAncestorContainer: 返回起始容器与结束容器的最近公共祖先节点。
方法
  • setStartBefore(node): 把范围的起点设置在指定节点之前。
  • setStartAfter(node): 把范围的起点设置在指定节点之后。
  • setEndBefore(node): 把范围的结束点设置在指定节点之前。
  • setEndAfter(node): 把范围的结束点设置在指定节点之后。
  • setStart(node, offset): 把范围的起点设置在指定节点内的指定位置。
  • setEnd(node, offset): 把范围的结束点设置在指定节点内的指定位置。
  • selectNode(node): 把范围设置为包含指定节点。
  • selectNodeContents(node): 把范围设置为包含指定节点的所有子节点。
示例

const range = document.createRange();
const p = document.querySelector('p');
range.selectNode(p);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);