JavaScriptで要素内のテキストを選択・選択解除する方法
JavaScriptを使えば、Webページ上の特定の要素内にあるテキストをプログラムから簡単に選択(ハイライト表示)したり、その選択を解除したりできます。この記事では、window.getSelection() が提供するメソッドを活用した実装方法を、実際に動作するサンプルコードとともにわかりやすく解説します。
使用する主なAPI
- selectAllChildren(element):指定した要素の子ノードすべて(テキストを含む)を選択状態にします。
- removeAllRanges():現在設定されているすべての選択範囲(Range)を削除し、選択を解除します。
サンプルコード
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>Select and Deselect Text Inside an Element</h1>
<div style="color: green;" class="result">
Here is some text inside the div
</div>
<button class="Btn">SELECT</button>
<button class="Btn">DESELECT</button>
<h3>Click on the above button to select/de-select text inside the div</h3>
<script>
let resEle = document.querySelector(".result");
let BtnEle = document.querySelectorAll(".Btn");
BtnEle[0].addEventListener("click", () => {
window.getSelection().selectAllChildren(resEle);
});
BtnEle[1].addEventListener("click", () => {
window.getSelection().removeAllRanges();
});
</script>
</body>
</html>
実行結果
上記のコードをブラウザで開くと、次のような画面が表示されます。

「SELECT」ボタンをクリックした場合:

「DESELECT」ボタンをクリックした場合:

コードのポイント
各ボタンにはクリックイベントリスナーが登録されています。「SELECT」ボタンが押されると window.getSelection().selectAllChildren(resEle) が実行され、クラス名 result のdiv要素の中身がすべて選択されます。一方、「DESELECT」ボタンが押された際は removeAllRanges() を呼び出すことで、現在の選択範囲が完全に解除されます。
このようにSelection APIを活用することで、マウスやキーボードによるユーザー操作に頼らず、JavaScript側からテキストの選択状態を自由に制御できるようになります。コピー機能の補助や、注釈ツールなどさまざまな場面で応用できる便利なテクニックです。
-
JavaScriptでテキストボックスを選択することは可能ですか?select()メソッドの使い方を解説
はい、可能です。JavaScriptのselect()メソッドを使えば、テキストボックス内のテキストを選択状態にすることができます。まずは、テキスト入力欄を作成してみましょう。 テキストボックスとボタンの作成 Enter your Name:<input type="text" id="txtName" value="John"> <br> <button type="button" onclick="check()">Select Text Box<
-
CSSで要素の最小幅(min-width)と最大幅(max-width)を設定する方法
CSSでは、min-widthプロパティとmax-widthプロパティを使うことで、要素の幅に下限と上限を設定できます。これにより、ブラウザのウィンドウサイズが変わっても、レイアウトが崩れすぎるのを防ぐことができます。 min-widthは要素の最小幅を指定し、それより狭くならないようにします。max-widthは要素の最大幅を指定し、それ以上広がらないようにします。 コード例 以下のコードでは、div要素に対して最大幅300px、最小幅100pxを設定しています。ブラウザのウィンドウサイズを変更すると、その効果を確認できます。 <!DOCTYPE html> <html&g