HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOMのinnerHTMLプロパティとは?取得・変更の方法を実例付きで解説

HTML DOM の innerHTML プロパティは、指定した要素の内部HTML(子要素やテキストなどのコンテンツ)を取得できるだけでなく、新しい内容へ書き換えることもできる便利なプロパティです。innerHTML とは、その名の通り「要素の中身」を指します。

innerHTMLプロパティの基本構文

innerHTML プロパティの基本的な使い方は、大きく分けて「取得」と「設定」の2つです。

1. 内部HTMLを取得する場合

object.innerHTML

2. 内部HTMLを設定(書き換え)する場合

object.innerHTML="value"

ここで「value」には、設定したいテキストコンテンツや、ネストされたHTML要素を文字列として指定します。

サンプルコード

それでは、innerHTML プロパティの具体的な使用例を見てみましょう。このデモでは、ボタンのクリックに応じて、外側の緑色ボックスの中身が正方形または円形の要素に入れ替わります。

<!DOCTYPE html>
<html>
<head>
<style>
   body{
      text-align:center;
   }
   .outer-box{
      background-color:#347924;
      width:200px;
      height:200px;
      padding:10px;
      text-align:center;
      font-weight:bold;
      color:white;
      margin:1rem auto;
   }
   .inner-box{
      width:100px;
      height:100px;
      margin:3rem auto;
      background-color:#8dce79;
   }
   .inner-circle{
      width:100px;
      height:100px;
      border-radius:50%;
      background-color:#8dce79;
      margin:3rem auto;
   }
</style>
</head>
<body>
<h1>innerHTML property Example</h1>
<div class="outer-box">
</div>
<button onclick="getsquare()">Get Square</button>
<button onclick="getcircle()">Get Circle</button>
<script>
   function getsquare() {
      var outerBox = document.querySelector('.outer-box');
      outerBox.innerHTML ='<div class="inner-box">square</div>';
   }
   function getcircle() {
      var outerBox = document.querySelector('.outer-box');
      outerBox.innerHTML ='<div class="inner-circle">circle</div>';
   }
</script>
</body>
</html>

ポイントは、document.querySelector() で取得した要素に対して innerHTML にHTML文字列を代入している点です。これにより、既存の子要素ごとまとめて動的に差し替えることができます。

実行結果

このコードをブラウザで開くと、まず次のように表示されます。

HTML DOMのinnerHTMLプロパティとは?取得・変更の方法を実例付きで解説

ここで「Get Square」ボタンをクリックすると、緑色の大きな正方形の中に小さな正方形が表示されます。

HTML DOMのinnerHTMLプロパティとは?取得・変更の方法を実例付きで解説

さらに「Get Circle」ボタンをクリックすると、今度は円形の要素に中身が切り替わります。このように、innerHTML を使えばボタン操作などに応じてページの一部を柔軟に書き換えられます。

HTML DOMのinnerHTMLプロパティとは?取得・変更の方法を実例付きで解説

innerHTMLを使う際の注意点

innerHTML は非常に手軽な一方、ユーザーの入力値などをそのまま挿入すると、悪意あるスクリプトが実行されるクロスサイトスクリプティング(XSS)の危険性があります。外部からの信頼できない文字列を扱う場合は、textContent の利用や入力値のサニタイズを検討しましょう。

  1. 【初心者向け】HTML DOMのoffsetParentプロパティの使い方とサンプルコード

    offsetParentプロパティとは HTML DOM の offsetParent プロパティは、対象要素のオフセット(相対的な位置)がどの親要素を基準として定義されているかを示し、その基準となる親要素への参照を返します。 具体的には、CSS の position プロパティ(relative / absolute / fixed / sticky)が指定された最も近い祖先要素が基準となります。該当する要素が存在しない場合は <body> 要素が返されます。また、テーブルセル内の要素であれば <td> や <table> などのテーブル関連要素が基準にな

  2. HTML DOM titleプロパティとは?使い方とサンプルコードを解説

    HTML DOM titleプロパティとはHTML DOMのtitleプロパティは、HTML要素のtitle属性に対応する文字列を取得(戻り値として返す)したり、設定したりするためのプロパティです。title属性に値が設定されている場合、その要素にマウスカーソルを重ねると、ツールチップとしてテキストが表示されます。この動的な挙動をJavaScriptから制御できるのが、titleプロパティの役割です。構文title属性の値を取得する場合:ElementOfHTMLObject.titletitle属性に文字列を設定する場合:ElementOfHTMLObject.title = string使