Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Range の s*~t* メソッドの記事を新規翻訳・更新 #17091

Merged
merged 11 commits into from
Nov 28, 2023
47 changes: 47 additions & 0 deletions files/ja/web/api/range/selectnode/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Range: selectNode() メソッド"
short-title: selectNode()
slug: Web/API/Range/selectNode
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

The **`Range.selectNode()`** メソッドは {{domxref("Range")}} に {{domxref("Node")}} とその内容を格納するように設定します。 {{domxref("Range")}} の始めと終わりの親 {{domxref("Node")}} は _referenceNode_ の親と同じになります。

## 構文

```js-nolint
selectNode(referenceNode)
```

### 引数

- `referenceNode`
- : {{domxref("Range")}} の中にある選択する {{domxref("Node")}} です。

### 返値

なし ({{jsxref("undefined")}})。

## 例

```js
let range = document.createRange();
let referenceNode = document.getElementsByTagName("div").item(0);

range.selectNode(referenceNode);
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
92 changes: 92 additions & 0 deletions files/ja/web/api/range/selectnodecontents/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: "Range: selectNodeContents() メソッド"
short-title: selectNodeContents()
slug: Web/API/Range/selectNodeContents
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.selectNodeContents()`** メソッドは {{domxref("Range")}} が {{domxref("Node")}} のコンテンツを含むように設定します。

`Range` の開始と終わりの親ノード (`Node`) が参照ノードになります。 `startOffset` は 0 で、 `endOffset` は子 `Node` の数、または参照ノードに格納する文字数です。

## 構文

```js-nolint
selectNodeContents(referenceNode)
```

### 引数

- `referenceNode`
- : {{domxref("Range")}} 内でコンテンツが選択されるノード ({{domxref("Node")}}) です。

### 返値

なし ({{jsxref("undefined")}})。

## 例

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

### ライブ例

この例では、ユーザーがボタンで段落を選択・解除できるようにしています。
{{domxref("Document.createRange()")}}、`Range.selectNodeContents()`、{{domxref("Selection.addRange()")}} を使用してコンテンツを選択しています。
選択解除には {{domxref("Window.getSelection()")}} と {{domxref("Selection.removeAllRanges()")}} を使用します。

#### HTML

```html
<p id="p">
<strong>以下のボタンを使用して</strong>この段落の内容を選択または選択解除してください。
mfuji09 marked this conversation as resolved.
Show resolved Hide resolved
</p>
<button id="select-button">段落を選択</button>
<button id="deselect-button">段落を選択解除</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();
});
```

#### 結果

{{EmbedLiveSample("Live_sample")}}

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
62 changes: 62 additions & 0 deletions files/ja/web/api/range/setend/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: "Range: setEnd() メソッド"
short-title: setEnd()
slug: Web/API/Range/setEnd
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.setEnd()`** メソッドは {{ domxref("Range") }} の終了位置を指定されたノードの指定されたオフセットに設定します。 終点を始点より上(文書内の高い位置)に設定すると、始点と終点の両方が指定した終点位置に設定された、折りたたまれた範囲になります。

## 構文

```js-nolint
setEnd(endNode, endOffset)
```

### 引数

- `endNode`
- : 中で {{ domxref("Range") }} が終わる {{ domxref("Node") }} です。
- `endOffset`
- : 0 以上の整数で、 `endNode` の始点から `Range` の終点のオフセットを表します。

### 返値

なし ({{jsxref("undefined")}})。

### 例外

- `InvalidNodeTypeError` {{domxref("DOMException")}}
- : `endNode` で指定されたノードは doctype ノードです。範囲の終点は doctype ノード内に配置することはできません。
- `IndexSizeError` {{domxref("DOMException")}}
- : `endOffset` で指定された値は、ノードの長さ以上であるか、 0 未満です。

## 使用上の注意

`endNode` が {{domxref("Text")}}、{{domxref("Comment")}}、{{domxref("CDataSection")}} のいずれかの型の {{domxref("Node")}} である場合、 `endOffset` は `endNode` の開始位置からの文字数です。他の型の {{domxref("Node")}} である場合、 `endOffset` は `endNode` の始点からの子ノードの数を指定します。

## 例

```js
const range = document.createRange();
const endNode = document.getElementsByTagName("p").item(3);
const endOffset = endNode.childNodes.length;
range.setEnd(endNode, endOffset);
```

> **メモ:** `setEnd()` は {{domxref("Range.setStart", "setStart()")}} と組み合わせて使用するのが一般的です。

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
47 changes: 47 additions & 0 deletions files/ja/web/api/range/setendafter/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Range: setEndAfter() メソッド"
short-title: setEndAfter()
slug: Web/API/Range/setEndAfter
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.setEndAfter()`** メソッドは {{domxref("Range")}} の終了位置を別の {{domxref("Node")}} から相対的に設定します。この `Range` の終了位置の親 `Node` は `referenceNode` と同じになります。

## 構文

```js-nolint
setEndAfter(referenceNode)
```

### 引数

- `referenceNode`
- : その後で {{domxref("Range")}} を終わらせる {{domxref("Node")}} です。

### 返値

なし ({{jsxref("undefined")}})。

## 例

```js
const range = document.createRange();
const referenceNode = document.getElementsByTagName("div").item(0);

range.setEndAfter(referenceNode);
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
47 changes: 47 additions & 0 deletions files/ja/web/api/range/setendbefore/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Range: setEndBefore() メソッド"
short-title: setEndBefore()
slug: Web/API/Range/setEndBefore
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.setEndBefore()`** メソッドは、 `Range` の終了位置を別の {{domxref("Node")}} からの相対位置で設定します。 `Range` の終了位置の親 `Node` は `referenceNode` と同じになります。

## 構文

```js-nolint
setEndBefore(referenceNode)
```

### 引数

- `referenceNode`
- : その前で {{domxref("Range")}} を終わらせる {{domxref("Node")}} です。

### 返値

なし ({{jsxref("undefined")}})。

## 例

```js
const range = document.createRange();
const referenceNode = document.getElementsByTagName("div").item(0);

range.setEndBefore(referenceNode);
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
11 changes: 7 additions & 4 deletions files/ja/web/api/range/setstart/index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
---
title: Range.setStart()
title: "Range: setStart() メソッド"
short-title: setStart()
slug: Web/API/Range/setStart
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.setStart()`** メソッドは{{ domxref("Range") }}の開始位置を設定します。
**`Range.setStart()`** メソッドは{{ domxref("Range") }} の開始位置を設定します。

`startNode` の {{domxref("Node")}} の型が {{domxref("Text")}}, {{domxref("Comment")}}, {{domxref("CDataSection")}} のいずれかであるとき、 `startOffset` は `startNode` の開始位置からの文字数です。その他の `Node` 型の場合、 `startOffset` は `startNode` からの子ノード数です。

始点を終点より下(文書の下層側)に設定すると、始点と終点の両方が指定された開始位置に設定され、折りたたまれた範囲となります。

## 構文

```js
setStart(startNode, startOffset);
```js-nolint
setStart(startNode, startOffset)
```

### 引数
Expand Down
47 changes: 47 additions & 0 deletions files/ja/web/api/range/setstartafter/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Range: setStartAfter() メソッド"
short-title: setStartAfter()
slug: Web/API/Range/setStartAfter
l10n:
sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
---

{{ApiRef("DOM")}}

**`Range.setStartAfter()`** メソッドは {{domxref("Node")}} に対する {{domxref("Range")}} の開始位置を設定します。 {{domxref("Range")}} の開始位置の親 {{domxref("Node")}} は `referenceNode` と同じになります。

## 構文

```js-nolint
setStartAfter(referenceNode)
```

### 引数

- `referenceNode`
- : その後で {{domxref("Range")}} を始める {{domxref("Node")}} です。

### 返値

なし ({{jsxref("undefined")}})。

## 例

```js
const range = document.createRange();
const referenceNode = document.getElementsByTagName("div").item(0);

range.setStartAfter(referenceNode);
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)
Loading
Loading