8.3 要素の内容とスタイルの変更
取得した要素の中身やスタイルを変更する方法を学びます。
8.3.1 textContent と innerHTML
textContent
要素のテキスト内容だけを取得・変更します。HTML タグは文字列として扱われます。
innerHTML
要素の中身を HTML 形式で取得・変更します。HTML タグとして解釈されます。
const div = document.querySelector("#content");
// textContent:タグを文字列として扱う
div.textContent = "<strong>太字</strong>"; // 画面には「<strong>太字</strong>」と表示
// innerHTML:タグとして解釈
div.innerHTML = "<strong>太字</strong>"; // 画面には「太字」と太字で表示
セキュリティ上の注意
ユーザーの入力をそのまま innerHTML に設定すると、XSS(クロスサイトスクリプティング)攻撃のリスクがあります。基本的には textContent を使い、必要な場合のみ innerHTML を使うようにしてください。
8.3.2 classList(add, remove, toggle)
classList は、要素の CSS クラスを追加・削除・切り替えるための便利なプロパティです。

8.3.3 要素の内容とスタイルを変更するプログラム
ソースフォルダ:public/ch08
ファイル名:dom-style.js
➢ dom-style.html
前の項で作った ch08/dom-query.html をコピーし、ch08 にペーストしてください。その際に、ファイル名を dom-style.html に変更します。ファイル内の dom-query.html や dom-query.js の記述も、dom-style.html や dom-style.js に修正します。さらに、ファイル内の記述を以下のように修正します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScriptの練習: dom-style.jsを実行中</title>
<style>
.highlight {
background-color: yellow;
font-weight: bold;
}
</style>
</head>
<body>
<p id="text">この文章のスタイルを変更します。</p>
<button id="toggleBtn">ハイライト切り替え</button>
<script src="dom-style.js"></script>
</body>
</html>
➢ dom-style.js
// dom-style.js
// 要素を取得
const text = document.querySelector("#text");
const button = document.querySelector("#toggleBtn");
// ボタンクリックでクラスを切り替え
button.addEventListener("click", function() {
text.classList.toggle("highlight");
// クラスが付いているか確認
if (text.classList.contains("highlight")) {
alert("ハイライトが ON になりました");
} else {
alert("ハイライトが OFF になりました");
}
});
実行結果
ボタンをクリックするたびに、文章が黄色の背景で太字になったり、元に戻ったりします。

実行結果
4 行目と 5 行目で、p タグと button タグの要素を取得しています。
4: const text = document.querySelector("#text");
5: const button = document.querySelector("#toggleBtn");
8 行目から 17 行目で、ボタンがクリックされたときの処理を定義しています。
9 行目の toggle メソッドは、highlight クラスがあれば削除し、なければ追加します。
9: text.classList.toggle("highlight");
12 行目では、contains メソッドを使って、現在 highlight クラスが付いているかどうかを確認し、適切なメッセージを表示しています。
12: if (text.classList.contains("highlight")) {
13: alert("ハイライトが ON になりました");
14: } else {
15: alert("ハイライトが OFF になりました");
16: }
