-
Notifications
You must be signed in to change notification settings - Fork 22.5k
/
index.md
98 lines (70 loc) · 2.32 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
title: "Range: selectNodeContents() method"
short-title: selectNodeContents()
slug: Web/API/Range/selectNodeContents
page-type: web-api-instance-method
browser-compat: api.Range.selectNodeContents
---
{{ApiRef("DOM")}}
The **`Range.selectNodeContents()`** method sets the {{domxref("Range")}} to contain the contents of a {{domxref("Node")}}.
The parent `Node` of the start and end of the `Range` will be the
reference node. The `startOffset` is 0, and the `endOffset` is the
number of child `Node`s or number of characters contained in the reference
node.
## Syntax
```js-nolint
selectNodeContents(referenceNode)
```
### Parameters
- `referenceNode`
- : The {{domxref("Node")}} whose contents will be selected within a {{domxref("Range")}}.
### Return value
None ({{jsxref("undefined")}}).
## Examples
```js
const range = document.createRange();
const referenceNode = document.querySelector("div");
range.selectNodeContents(referenceNode);
```
### Live sample
This example lets the user select and deselect a paragraph with buttons.
{{domxref("Document.createRange()")}}, `Range.selectNodeContents()`, and
{{domxref("Selection.addRange()")}} are used to select the content.
{{domxref("Window.getSelection()")}} and {{domxref("Selection.removeAllRanges()")}} are
used to deselect it.
#### 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();
});
```
#### Result
{{EmbedLiveSample("Live_sample")}}
## Specifications
{{Specifications}}
## Browser compatibility
{{Compat}}
## See also
- [The DOM interfaces index](/en-US/docs/Web/API/Document_Object_Model)