范围:selectNodeContents() 方法

Range.selectNodeContents() 方法将 Range 设置为包含 Node 的内容。

Range 的开始和结束的父 Node 将是参考节点。startOffset 为 0,endOffset 是子 Node 的数量或参考节点中包含的字符数量。

语法

js
selectNodeContents(referenceNode)

参数

referenceNode

将在 Range 中选择其内容的 Node

返回值

无 (undefined)。

示例

js
const range = document.createRange();
const referenceNode = document.querySelector("div");
range.selectNodeContents(referenceNode);

实时示例

此示例允许用户使用按钮选择和取消选择段落。 Document.createRange()Range.selectNodeContents()Selection.addRange() 用于选择内容。 Window.getSelection()Selection.removeAllRanges() 用于取消选择。

HTML

html
<p id="p">
  <strong>Use the buttons below</strong> to select or deselect the contents of
  this paragraph.
</p>
<button id="select-button">Select paragraph</button>
<button id="deselect-button">Deselect paragraph</button>

JavaScript

js
const p = document.getElementById("p");
const selectButton = document.getElementById("select-button");
const deselectButton = document.getElementById("deselect-button");

selectButton.addEventListener("click", (e) => {
  // Clear any current selection
  const selection = window.getSelection();
  selection.removeAllRanges();

  // Select paragraph
  const range = document.createRange();
  range.selectNodeContents(p);
  selection.addRange(range);
});

deselectButton.addEventListener("click", (e) => {
  const selection = window.getSelection();
  selection.removeAllRanges();
});

结果

规范

规范
DOM 标准
# dom-range-selectnodecontents

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅