JavaScript

最終更新日:
公開日:

レシピ

HTML・DOM

HTML要素のソースコードを取得、編集する

特定のHTML要素をコード形式で取得したり、編集する方法について解説します。

この記事のポイント

  • 子孫要素のソースコードのみを取得するときはinnerHTMLプロパティを使う
  • 自分自身と子孫要素の両方のソースコードを取得するときはouterHTMLプロパティを使う

HTML要素のソースコードを取得して編集する

ページ中にある特定のHTML要素について、ソースコードを取得するときはinnerHTMLプロパティouterHTMLプロパティを使うと、文字列形式で取得することができます。

innerHTMLプロパティ指定したHTML要素自身は含まず、子孫要素のソースコードのみを取得するプロパティです。
もう1つのouterHTMLプロパティ指定したHTML要素自身を含めたソースコードを取得することができます。
指定したHTML要素も含めて取得したいときはouterHTMLプロパティ、含めないときはinnerHTMLプロパティを使います。

以下のHTMLコードを使って、2つのプロパティの使用例を解説していきます。

HTML コード例

<h1>JavaScriptレシピ</h1>
<article id="textbox">
	<p>このエリアにHTML要素を追加する</p>
</article>

以下の例では、上記HTMLにあるarticle要素id属性から取得して、innerHTMLプロパティouterHTMLプロパティでそれぞれソースコードを取得して出力します。

JS コード例

// id属性からHTML要素を取得
let textbox = document.getElementById("textbox");

// 子孫要素のソースコードを取得
let inner_code = textbox.innerHTML;
console.log(inner_code);
// <p>このエリアにHTML要素を追加する</p>

// 自身を含めたソースコードを取得
let outer_code = textbox.outerHTML;
console.log(outer_code);
// <article id="textbox">
// 	<p>このエリアにHTML要素を追加する</p>
// </article>

なお、取得したコードは元のHTML要素とは関連がないため、文字列を編集をしても特に影響はありません。
コードを編集してHTML要素に反映するときは、プロパティにソースコードを代入します。

以下の例はarticle要素innerHTMLプロパティdiv要素を挿入することで、article要素の子孫要素を編集します。

JS コード例

// id="textbox"のソースコードを取得して出力
let textbox = document.getElementById("textbox");

// 新しいHTMLコードを挿入
textbox.innerHTML = '<div>empty</div>';

このコードを実行すると、article要素の子孫要素は以下の内容に変更されます。

編集後のHTML コード例

<article id="textbox">
	<div>empty</div>
</article>

続いて、今度はarticle要素outerHTMLプロパティdiv要素を挿入します。
こちらは子孫要素だけじゃなく、article要素がそのまま置き換えられます。

JS コード例

// id="textbox"のソースコードを取得して出力
let textbox = document.getElementById("textbox");

// 新しいHTMLコードを挿入
textbox.outerHTML = '<div>empty</div>';

このコードを実行すると、article要素は以下の内容に変更されます。

編集後のHTML コード例

<div>empty</div>

article要素ごとdiv要素へ置き換えられました。
innerHTMLプロパティouterHTMLプロパティにはこのような違いがあります。