カテゴリ: JavaScript 更新日: 2026/03/01

JavaScriptのinnerHTMLとtextContentの違いを理解しよう|初心者向けDOM操作解説

JavaScriptのinnerHTMLとtextContentの違いを理解しよう
JavaScriptのinnerHTMLとtextContentの違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptで文字を表示するときに、innerHTMLとtextContentって出てきたんですが、違いが分かりません」

先生

「どちらもDOM操作で文字を扱う方法ですが、役割が少し違います。表示され方や安全性にも関係します」

生徒

「初心者でも使い分けられるようになりますか?」

先生

「はい。身近な例えで考えると、自然に理解できますよ」

1. innerHTMLとtextContentは何をするもの?

1. innerHTMLとtextContentは何をするもの?
1. innerHTMLとtextContentは何をするもの?

JavaScriptのDOM操作では、HTML要素の中身を読み取ったり、 書き換えたりすることができます。 そのときによく使われるのが innerHTMLtextContentです。

どちらも「要素の中身」を扱いますが、 HTMLとして扱うか、文字だけとして扱うかが大きな違いです。 これは初心者が最初につまずきやすいポイントです。

2. innerHTMLとは?

2. innerHTMLとは?
2. innerHTMLとは?

innerHTMLは、要素の中にある HTMLそのものを文字として取得・設定する仕組みです。 タグも含めて扱うのが特徴です。

たとえるなら、箱の中に入っている 手紙と飾りを丸ごと取り出すようなイメージです。


const box = document.getElementById("box");
box.innerHTML = "<strong>こんにちは</strong>";

この場合、「こんにちは」は太字として表示されます。 HTMLタグがそのまま解釈されるため、見た目が変わります。

3. textContentとは?

3. textContentとは?
3. textContentとは?

textContentは、 要素の中の文字だけを扱うための仕組みです。 HTMLタグはすべて無視され、純粋な文章として扱われます。

こちらは、箱の中の文字だけを読み上げて、 飾りや装飾は見ないイメージです。


const box = document.getElementById("box");
box.textContent = "<strong>こんにちは</strong>";

実行結果では、タグも含めてそのまま文字として表示されます。 見た目は変わらず、安全に文字を表示できます。

4. 表示結果の違いを比べてみよう

4. 表示結果の違いを比べてみよう
4. 表示結果の違いを比べてみよう

innerHTMLはHTMLとして解釈されるため、 デザインを動的に変えたいときに便利です。

一方でtextContentは、 表示する文字がそのまま出るため、 ユーザー入力を表示するときに向いています。

この違いを理解していないと、 意図しない表示やエラーにつながることがあります。

5. 安全性の違いも重要なポイント

5. 安全性の違いも重要なポイント
5. 安全性の違いも重要なポイント

innerHTMLはHTMLをそのまま実行するため、 悪意のあるコードが混ざると問題が起きる可能性があります。 これをセキュリティの問題と呼びます。

textContentは文字としてしか扱わないため、 初心者にはこちらの方が安全で安心です。 まずはtextContentを基本として覚えるとよいでしょう。

6. どちらを使えばよいかの考え方

6. どちらを使えばよいかの考え方
6. どちらを使えばよいかの考え方

見た目を含めてHTMLを操作したい場合はinnerHTML、 文章だけを表示したい場合はtextContent、 という使い分けが基本です。

JavaScriptのDOM操作では、 目的に応じて道具を選ぶことが大切です。 まずは違いを理解することが第一歩になります。

関連記事:
カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptのスコープとは?ローカル変数・グローバル変数の違いと使い分け
New2
TypeScript
TypeScriptで型の合成時に発生する型エラーの対処法を徹底解説!初心者にもわかりやすく解説
New3
TypeScript
TypeScriptでAPI呼び出しをラップするユーティリティ関数の設計完全ガイド!初心者向けにAxiosやFetchの使い方を解説
New4
TypeScript
TypeScriptのMapped Typesとインターフェースの連携方法を徹底解説!初心者でも理解できる型変換の基本
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのループで無限ループが起きる原因と対策を初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptの文字列の長さを取得する(lengthプロパティ)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのファイル分割とimport/exportの基本を徹底解説!初心者でも安心のやさしい入門
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptのプリミティブ型と参照型の違いを初心者向けに解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理