【初心者必見】innerHTMLとinnerTextの違いとは?―JavaScriptでよく使うけれど混乱しやすい2つをやさしく解説!

こんにちは。ゆうせいです。

JavaScriptでHTML要素の中身を取得・書き換えようとするとき、あなたはどちらを使っていますか?

element.innerHTML
element.innerText

「なんとなく innerHTML の方がよく見る気がする…」「innerText って何が違うの?」と迷っていませんか?

今回は、似ているようで全然違うこの2つのプロパティの違いを、新人エンジニア向けにやさしく解説していきます!


そもそも何をするもの?

まず、共通点から確認しましょう。

innerHTMLとinnerTextは、HTML要素の「中身(コンテンツ)」を取得・書き換えするプロパティです。

でも、「何を中身とみなすか」が大きく違うんです!


結論から言うと…

プロパティ取得・操作の対象HTMLタグも含む?用途
innerHTMLHTML構造ごと含む要素の構造ごと操作したいとき
innerText表示されているテキストだけ含まない画面に表示されている文字を取得したいとき

例で見てみよう!

HTML

<div id="sample">
  <strong>こんにちは</strong> <em>世界</em>
</div>

JavaScriptで取得

const el = document.getElementById('sample');

console.log(el.innerHTML); 
// → "<strong>こんにちは</strong> <em>世界</em>"

console.log(el.innerText); 
// → "こんにちは 世界"

  • innerHTMLタグを含めたHTMLコードそのもの を返します
  • innerText表示される文字列だけ を返します

それぞれの用途と使いどころ

innerHTML が得意なこと

✅ HTML構造を一括で挿入・変更したいとき

el.innerHTML = '<p>新しい段落</p>';

✅ 要素をループで作るときにも便利!

list.innerHTML += `<li>${item}</li>`;

※ ただし、XSS(クロスサイトスクリプティング) のリスクがあるため、外部から取得したデータには注意!


innerText が得意なこと

✅ 表示されている文字だけを取得したいとき

console.log(button.innerText); // ボタンに表示されている文字

✅ ユーザーが見ている内容を基準にした処理をしたいとき

たとえば、「ログイン」ボタンの文字が「ログアウト」になっていたら…?

if (button.innerText === 'ログアウト') {
  // ログアウト処理を実行
}


よくある間違い

Q1. 「innerTextでHTMLタグが返ってこないのはバグ?」

いいえ、それが仕様です。

innerText実際に表示される「人間向けのテキスト」だけを返します。タグは無視されます。


Q2. 「タグ付きで文字を追加したのに反映されない!」

el.innerText = "<b>重要</b>"; 
// → 表示:<b>重要</b>

innerText では タグはただの文字列として扱われる ため、HTMLとして解釈されません。


比較まとめ(表)

特徴innerHTMLinnerText
タグも扱う○(含まれる)×(除去される)
書き換え可能
セキュリティ注意高(XSSの危険あり)
表示用に向いている?
構造操作向き?×

実践のヒント:どちらを使うべき?

  • 見た目(文字)だけを扱いたいinnerText
  • HTMLタグ込みで差し替えたいinnerHTML

迷ったらこう覚えましょう!

innerTextは人間向け、innerHTMLはブラウザ向け


今後の学習の道しるべ

次に進むなら、以下のキーワードを学ぶと理解がさらに深まります!

  • textContent:innerTextとの違い(非表示の文字も取得できる)
  • XSS(クロスサイトスクリプティング)対策
  • DOM操作の基礎(createElement、appendChildなど)
  • templateタグとinnerHTMLの組み合わせ

innerHTMLinnerText の違いがしっかり分かると、UIの操作やデータの取り扱いがグッと正確になります!

ぜひ、違いを意識しながら実際に手を動かしてみてください!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。