JavaScriptでgetAttributeメソッドを使って属性値を取得する7つの方法

JavaScriptのgetAttributeメソッドを使ってHTML要素の属性値を取得 JS
この記事は約17分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

●getAttributeメソッドとは?

今回は、JavaScriptのgetAttributeメソッドについて詳しく解説していきたいと思います。

getAttributeメソッドは、HTML要素の属性値を取得するために使用される便利なメソッドです。

このメソッドを使いこなすことで、Webアプリケーションの機能を拡張し、より動的なWebサイトを作成することができるでしょう。

○getAttributeメソッドの基本的な使い方

では早速、getAttributeメソッドの基本的な使い方について見ていきましょう。

getAttributeメソッドは、指定したHTML要素の属性値を取得するために使用します。

構文はこのようになります。

要素.getAttribute(属性名);

ここで、「要素」はgetAttributeメソッドを使用したいHTML要素を指定し、「属性名」は取得したい属性の名前を指定します。

○サンプルコード1:id属性の取得

実際に、getAttributeメソッドを使ってid属性の値を取得してみましょう。

次のようなHTMLがあるとします。

<div id="myElement">これはdiv要素です。</div>

このdiv要素のid属性の値を取得するには、このようなJavaScriptコードを使用します。

const element = document.getElementById('myElement');
const id = element.getAttribute('id');
console.log(id);

実行結果は次kのようになります。

myElement

このように、getAttributeメソッドを使用することで、指定したHTML要素のid属性の値を簡単に取得することができました。

○サンプルコード2:class属性の取得

次に、class属性の値を取得する方法について見ていきましょう。

次のようなHTMLがあるとします。

<p class="myClass">これはp要素です。</p>

このp要素のclass属性の値を取得するには、このようなJavaScriptコードを使用します。

const element = document.querySelector('.myClass');
const className = element.getAttribute('class');
console.log(className);

実行結果は次のようになります。

myClass

このサンプルコードでは、document.querySelector()メソッドを使用してclass属性が”myClass”である要素を取得し、getAttribute()メソッドでclass属性の値を取得しています。

●getAttributeメソッドを使った属性値の取得

前回は、getAttributeメソッドの基本的な使い方について解説しました。

id属性やclass属性の値を取得する方法を学んだことで、getAttributeメソッドの基本的な使い方は理解できたのではないでしょうか。

今度は、getAttributeメソッドを使って、より多様な属性値を取得する方法について見ていきましょう。

HTMLには、id属性やclass属性以外にも、様々な属性があります。

この属性値を取得することで、より動的で柔軟なWebアプリケーションを開発することができるでしょう。

○サンプルコード3:data-*属性の取得

HTML5では、data-属性という独自の属性を定義することができます。

data-属性は、要素に関する追加情報を格納するために使用されます。

例えば、次のようなHTMLがあるとします。

<div id="myElement" data-myData="こんにちは">これはdiv要素です。</div>

このdiv要素のdata-myData属性の値を取得するには、このようなJavaScriptコードを使用します。

const element = document.getElementById('myElement');
const data = element.getAttribute('data-myData');
console.log(data);

実行結果は次のようになります。

こんにちは

このように、getAttributeメソッドを使用することで、data-属性の値を簡単に取得できます。

data-属性は、要素に関する追加情報を格納するのに便利なので、ぜひ活用してみてください。

○サンプルコード4:カスタム属性の取得

HTML5では、data-*属性以外にも、独自のカスタム属性を定義することができます。

カスタム属性は、要素に関する任意の情報を格納するために使用されます。

例えば、次のようなHTMLがあるとします。

<p id="myParagraph" myAttribute="カスタム属性の値">これはp要素です。</p>

このp要素のmyAttribute属性の値を取得するには、このようなJavaScriptコードを使用します。

const element = document.getElementById('myParagraph');
const value = element.getAttribute('myAttribute');
console.log(value);

実行結果は次のようになります。

カスタム属性の値

このサンプルコードでは、独自のカスタム属性であるmyAttributeの値を取得しています。

カスタム属性を使用することで、要素に関する任意の情報を格納し、JavaScriptから簡単にアクセスできるようになります。

○サンプルコード5:複数の属性値の取得

ここまでは、1つの属性値を取得する方法について見てきました。

しかし、getAttributeメソッドを使えば、複数の属性値を一度に取得することもできます。

例えば、次のようなHTMLがあるとします。

<div id="myDiv" class="myClass" data-value="データ属性の値">これはdiv要素です。</div>

このdiv要素の複数の属性値を取得するには、このようなJavaScriptコードを使用します。

const element = document.getElementById('myDiv');
const id = element.getAttribute('id');
const className = element.getAttribute('class');
const dataValue = element.getAttribute('data-value');

console.log(id);
console.log(className);
console.log(dataValue);

実行結果は以下のようになります。

myDiv
myClass
データ属性の値

このように、getAttributeメソッドを複数回呼び出すことで、複数の属性値を取得できます。

必要な属性値を適宜取得し、活用してみてください。

○サンプルコード6:属性の存在チェック

getAttributeメソッドを使う際に、指定した属性が要素に存在するかどうかをチェックしたい場合があります。

そんな時は、次のようなJavaScriptコードを使用します。

<div id="myDiv">これはdiv要素です。</div>
const element = document.getElementById('myDiv');
const hasAttribute = element.hasAttribute('id');

if (hasAttribute) {
  console.log('id属性が存在します。');
} else {
  console.log('id属性が存在しません。');
}

実行結果はこのようになります。

id属性が存在します。

このサンプルコードでは、hasAttribute()メソッドを使用して、要素にid属性が存在するかどうかをチェックしています。

hasAttribute()メソッドは、指定した属性が存在する場合はtrue、存在しない場合はfalseを返します。

この結果を元に、適切な処理を行うことができます。

●よくあるエラーと対処法

getAttributeメソッドは非常に便利な機能ですが、時にはうまく動作しないこともあるでしょう。

初めてgetAttributeメソッドを使う方や、慣れていない方は、エラーに遭遇して困惑してしまうかもしれません。

そこで、ここではgetAttributeメソッドを使う際によくあるエラーと、その対処法について解説していきたいと思います。

エラーに出くわした時の解決策を知っておくことで、スムーズにコーディングを進められるようになるはずです。

ぜひ参考にしてみてください。

○getAttribute()の戻り値がnullになる場合

getAttribute()メソッドを使って属性値を取得しようとしたとき、戻り値がnullになることがあります。

これは、指定した属性が要素に存在しない場合に起こるエラーです。

例えば、次のようなHTMLがあるとします。

<div id="myDiv">これはdiv要素です。</div>

ここで、存在しないclass属性の値を取得しようとすると、このようなエラーが発生します。

const element = document.getElementById('myDiv');
const className = element.getAttribute('class');
console.log(className); // null

この場合、getAttribute()メソッドの戻り値はnullになります。

このようなエラーを避けるためには、getAttribute()メソッドを使う前に、hasAttribute()メソッドを使って属性の存在をチェックするとよいでしょう。

const element = document.getElementById('myDiv');

if (element.hasAttribute('class')) {
  const className = element.getAttribute('class');
  console.log(className);
} else {
  console.log('class属性が存在しません。');
}

このように、hasAttribute()メソッドを使って属性の存在をチェックしてから、getAttribute()メソッドを使うようにすれば、nullが返されるエラーを回避できます。

○属性名を間違えた場合の対処法

getAttribute()メソッドを使うとき、属性名を間違えてしまうことがあるかもしれません。

例えば、次のようなHTMLがあるとします。

<p id="myParagraph" data-value="データ属性の値">これはp要素です。</p>

ここで、data-value属性の値を取得しようとして、属性名を間違えてdata-valと記述してしまったとします。

const element = document.getElementById('myParagraph');
const value = element.getAttribute('data-val');
console.log(value); // null

この場合、getAttribute()メソッドの戻り値はnullになります。

属性名が間違っているために、指定した属性が見つからないからです。

このようなエラーを避けるためには、ブラウザの開発者ツールを使って、要素の属性を確認するとよいでしょう。

多くのブラウザで、要素を右クリックして「検証」を選択すると、開発者ツールが開きます。

開発者ツールを使えば、要素の属性を確認できるので、属性名の間違いを見つけやすくなります。

また、コードを書く際は、属性名を注意深く記述するように心がけましょう。

スペルミスがないか、大文字と小文字は正しいかなど、細心の注意を払ってコーディングすることが大切です。

○要素が存在しない場合の対処法

getAttributeメソッドを使う際に、指定したIDやクラス名の要素が存在しない場合があります。

例えば、このようなHTMLがあるとします。

<div id="myDiv">これはdiv要素です。</div>

ここで、存在しないIDを指定して要素を取得しようとすると、次のようなエラーが発生します。

const element = document.getElementById('myElement');
const value = element.getAttribute('id');
console.log(value); // エラー

この場合、getElementById()メソッドの戻り値はnullになります。

nullに対してgetAttribute()メソッドを呼び出そうとするため、エラーが発生するのです。

このようなエラーを避けるためには、getElementById()やquerySelectorAll()などのメソッドを使って要素を取得する際に、戻り値がnullでないかチェックするとよいでしょう。

const element = document.getElementById('myElement');

if (element) {
  const value = element.getAttribute('id');
  console.log(value);
} else {
  console.log('指定したIDの要素が存在しません。');
}

このように、要素が存在するかどうかをチェックしてから、getAttribute()メソッドを使うようにすれば、エラーを回避できます。

●getAttributeメソッドの応用例

ここまでgetAttributeメソッドの基本的な使い方やエラー対処法について解説してきましたが、Webアプリケーション開発の現場では、getAttributeメソッドをもっと応用的に活用することがよくあります。

属性値を使って、動的にスタイルを変更したり、イベントを制御したりといった具合です。

経験上、getAttributeメソッドの応用的な使い方を知っておくと、よりインタラクティブで魅力的なWebサイトを作ることができるでしょう。

ここでは、そんなgetAttributeメソッドの実践的な活用例をいくつか紹介していきたいと思います。

ぜひ参考にしてみてください。

○サンプルコード7:条件分岐での属性値の活用

getAttributeメソッドで取得した属性値を使って、条件分岐を行うことができます。

これにより、要素の状態に応じて動的に処理を切り替えられるので、Webアプリケーションの柔軟性が増すでしょう。

例えば、次のようなHTMLがあるとします。

<button id="myButton" data-status="disabled">ボタン</button>

このボタン要素のdata-status属性の値を使って、ボタンの有効/無効を切り替えてみましょう。

const button = document.getElementById('myButton');
const status = button.getAttribute('data-status');

if (status === 'enabled') {
  button.removeAttribute('disabled');
} else {
  button.setAttribute('disabled', 'disabled');
}

実行結果は次のようになります。

<button id="myButton" data-status="disabled" disabled>ボタン</button>

このサンプルコードでは、ボタン要素のdata-status属性の値を取得し、その値が’enabled’の場合はdisabled属性を削除して、ボタンを有効化しています。

逆に、’enabled’以外の場合は、disabled属性を追加して、ボタンを無効化しています。

○サンプルコード8:属性値を使ったスタイルの変更

getAttributeメソッドで取得した属性値を使って、要素のスタイルを動的に変更することもできます。

これにより、ユーザーの操作に応じてWebサイトのデザインを変化させられるので、よりインタラクティブなユーザーインターフェースを作成できるでしょう。

例えば、次のようなHTMLとCSSがあるとします。

<div id="myBox" data-color="red">これはdiv要素です。</div>
.red {
  background-color: red;
}

.blue {
  background-color: blue;
}

このdiv要素のdata-color属性の値を使って、背景色を動的に変更してみましょう。

const box = document.getElementById('myBox');
const color = box.getAttribute('data-color');

box.classList.add(color);

実行結果は次のようになります。

<div id="myBox" data-color="red" class="red">これはdiv要素です。</div>

このサンプルコードでは、div要素のdata-color属性の値を取得し、その値をCSSのクラス名として追加しています。

これにより、data-color属性の値に応じて、div要素の背景色が動的に変更されます。

○サンプルコード9:属性値を使ったイベントの制御

getAttributeメソッドで取得した属性値を使って、イベントの制御を行うこともできます。

これにより、要素の状態に応じて動的にイベントの処理を切り替えられるので、よりインタラクティブなWebアプリケーションを開発できるでしょう。

例えば、次のようなHTMLがあるとします。

<button id="myButton" data-action="save">保存</button>

このボタン要素のdata-action属性の値を使って、クリックイベントの処理を切り替えてみましょう。

const button = document.getElementById('myButton');
const action = button.getAttribute('data-action');

button.addEventListener('click', function() {
  if (action === 'save') {
    console.log('保存処理を実行します。');
  } else if (action === 'delete') {
    console.log('削除処理を実行します。');
  }
});

実行結果は次のようになります。

保存処理を実行します。

このサンプルコードでは、ボタン要素のdata-action属性の値を取得し、その値に応じてクリックイベントの処理を切り替えています。

data-action属性の値が’save’の場合は保存処理を実行し、’delete’の場合は削除処理を実行するようになっています。

○サンプルコード10:属性値を使ったAjax通信

getAttributeメソッドで取得した属性値を使って、Ajax通信を制御することもできます。

これにより、要素の属性値に応じて動的にサーバーとデータをやり取りできるので、より柔軟でリッチなWebアプリケーションを開発できるでしょう。

例えば、次のようなHTMLがあるとします。

<button id="myButton" data-url="/api/data">データを取得</button>

このボタン要素のdata-url属性の値を使って、Ajax通信を行ってみましょう。

const button = document.getElementById('myButton');
const url = button.getAttribute('data-url');

button.addEventListener('click', function() {
  fetch(url)
    .then(response => response.json())
    .then(data => {
      console.log(data);
    });
});

実行結果は次のようになります(サーバーからのレスポンスに依存)。

{
  "id": 1,
  "name": "John Doe",
  "email": "john@example.com"
}

このサンプルコードでは、ボタン要素のdata-url属性の値を取得し、その値を使ってAjax通信を行っています。

ボタンがクリックされると、data-url属性の値をURLとしてfetch関数を呼び出し、サーバーからデータを取得します。

取得したデータは、コンソールに出力されます。

まとめ

JavaScriptのgetAttributeメソッドは、HTML要素の属性値を取得するために欠かせない機能です。

今回は、そんなgetAttributeメソッドの基本的な使い方から、様々な属性値の取得方法、エラー対処法、そして実践的な応用例まで、幅広く解説してきました。

ぜひ、本記事で学んだgetAttributeメソッドの知識を活かして、魅力的なWebサイトやアプリケーションを作ってみてください。

皆さんの開発現場で、getAttributeメソッドが大いに活躍することを期待しています。