document.getElementById()
| 対応: | DOM Level 1(1998) |
|---|
指定したID名を持つHTML要素をドキュメント内から取得します。IDはページ内で一意であるため、常に1つのHTML要素のみが返されます。
構文
var element = document.getElementById("ID名");
引数
| 引数 | 概要 |
|---|---|
| ID名 | 取得したいHTML要素のID名を文字列で指定します。『#』は不要です。 |
戻り値
指定したIDを持つHTML要素(Elementオブジェクト)を返します。該当するHTML要素が存在しない場合は『null』を返します。
サンプルコード
sample_getElementById.html
<h1 id="fighter-name">八神庵</h1> <p id="fighter-style">八神流古武術</p> <p id="fighter-age">20</p> <button id="btn-update">情報を更新する</button>
sample_getElementById.js
// パターン1: テキストを取得する
var nameEl = document.getElementById("fighter-name");
console.log(nameEl.textContent); // 『八神庵』と出力されます。
var styleEl = document.getElementById("fighter-style");
console.log(styleEl.textContent); // 『八神流古武術』と出力されます。
// パターン2: テキストを変更する
var ageEl = document.getElementById("fighter-age");
ageEl.textContent = "年齢: 20歳";
// パターン3: 属性を変更する
var btn = document.getElementById("btn-update");
btn.setAttribute("disabled", "true");
btn.textContent = "更新済み";
// パターン4: nullチェックをしてから操作する
var el = document.getElementById("nonexistent");
if (el) {
el.textContent = "見つかりました。";
} else {
console.log("要素が見つかりませんでした。"); // 存在しない場合はこちらが出力されます。
}
HTML要素が見つからない場合
存在しないIDを指定すると『null』が返されます。『null』のまま操作しようとするとエラーになります。『document.querySelector()』と同様に、nullチェックをしてから操作してください。
// 存在しないIDを指定します。
var el = document.getElementById("nothing");
el.innerHTML = "<p>テスト</p>"; // TypeError: Cannot set properties of null
// 正しい書き方
var el = document.getElementById("title");
if (el) {
el.innerHTML = "<p>新しいタイトル</p>";
}
概要
『document.getElementById()』はID名でHTML要素を取得する最もシンプルなメソッドです。ID名はページ内で一意でなければならないため、必ず1つのHTML要素だけが返されます。
同様の取得は『document.querySelector("#ID名")』でも可能ですが、『document.getElementById()』の方が内部的な処理が高速なため、IDでHTML要素を取得する場合は『document.getElementById()』の使用をおすすめします。
引数にはID名の文字列のみを指定します。CSSセレクタのように『#』を付ける必要はありません。『#』を付けると正しく取得できませんのでご注意ください。
『document.getElementById()』はチュートリアル記事『id名で要素を特定してその属性を操作してみよう』で、より詳しく解説しています。良ければご覧下さい。
対応ブラウザ
4.5 以前 ×
6 以前 ×
Android Browser
37 以降 ○
4 以前 ×
Chrome Android
36 以降 ○
17 以前 ×
Firefox Android
79 以降 ○
3 以前 ×記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。