【PR】を含みます。

フロントエンド

【JavaScript】data属性の値を取得する方法

JavaScript data属性の値を取得する方法

この記事では、JavaScriptとjQueryでdata属性の値を取得する方法を解説します。

data属性とは

data属性は、HTML5から使えるようになったカスタムデータ属性です。

HTML要素に「開発者が自由に定義したデータ」を埋め込むために使います。

書き方はとてもシンプルで、data-から始まる属性名をHTMLタグに追加するだけです。

例:

<div id="target" data-user-id="1" data-role="admin">ユーザー情報</div>

上記の例では、<div>タグに「user-id」と「role」という2つのデータが含まれています。

data属性を使う理由

  • 要素ごとに異なるデータを持たせたいときに便利
  • クラス名やIDでは管理しづらい細かい情報を埋め込める
  • JavaScriptやjQueryから簡単にアクセス・操作できる

たとえば、ECサイトで「商品ID」や「価格」などを各ボタンに持たせたい場合などに非常によく使われます。

例:

<button id="add-cart" data-product-id="1001" data-price="1980">カートに追加</button>

このようにdata属性は、HTMLとJavaScriptの「橋渡し」のような役割を果たしてくれます。

JavaScriptでdata属性の値を取得する方法

JavaScriptでdata属性の値を取得するには、datasetプロパティを使うのがもっとも一般的で簡単な方法です。

以下のようなHTMLがあったとします。

HTML:

<div id="target" data-user-id="1" data-role="admin">ユーザー情報</div>

この要素に対して、JavaScriptでdata属性の値を取得するには次のように書きます。

JavaScript
Copy
const element = document.querySelector('#target');
const userId = element.dataset.userId;
const role = element.dataset.role;
console.log(userId); // "1"
console.log(role); // "admin"
POINT
  • data-の後ろは キャメルケース(userId, roleなど) に変換して使います。

    data-user-iddataset.userIdになることに注意しましょう。

イベントと組み合わせてdata属性の値を取得する方法

実際の開発では、ユーザーがボタンをクリックしたタイミングでdata属性の値を取得したいケースが非常に多いです。

たとえば、以下のように商品IDをボタンに埋め込んでおき、クリック時にそのIDを取得して処理を行うような場面です。

HTML:

<button data-product-id="1001">商品A</button>
<button data-product-id="1002">商品B</button>
<button data-product-id="1003">商品C</button>
JavaScript
Copy
const buttons = document.querySelectorAll('button');
buttons.forEach(button => {
  button.addEventListener('click', function() {
    const productId = this.dataset.productId;
    console.log(`クリックされた商品ID: ${productId}`);
  });
});

jQueryでデータ属性を取得する方法

jQueryでdata属性の値を取得するには、.data()メソッドを使用します。

以下のようなHTMLがあったとします。

HTML:

<div id="target" data-user-id="1">ユーザー情報</div>

この要素に対して、jQueryでdata属性の値を取得するには次のように書きます。

jQuery
Copy
const userId = $('#target').data('userId');
console.log(userId); // 1
POINT
  • 新しいバージョンのjQueryではキャメルケース(.data('userId'))で指定することが推奨されますが、(.data('user-id')のように、ハイフン区切りのまま指定することも可能です。

  • 古いバージョンのjQueryを使用している場合、キャメルケースで指定することはできないため、ハイフン区切りで指定する必要があります。

udemyでJavaScriptを学ぶ

学習時間
24.5時間
学習内容
  • 本格的なWEBサイトを作成する方法について学びます。
  • Sass(※以下CSSと記載)、JavaScriptの基礎について深く学びます。
  • CSS、JavaScriptの実践的な記述について深く学びます。
  • CSS、JavaScriptアニメーションの実装について学びます。
  • 最新の実践的なWEB画面の作成方法について深く学びます。
  • CSS、JavaScriptのコードの最適化、安定化について学びます。
  • 維持管理、持続可能なコードの記述方法について学びます。
対象受講者
  • ドットインストールでCSS、JavaScriptの入門編を終えたレベルの方
  • 他の先生のフロントエンドの入門編を終えたレベルの方
  • 自分で本格的なWEBサイトを作ってみたい方
  • CSS、JavaScriptの実践的な基礎を効率的に学びたい方
  • CSS、JavaScriptを今後仕事で使う予定の方
  • CSS、JavaScriptのコードの整理方法について学びたい方
  • CSS、JavaScriptのアニメーションを学びたい方
  • CSS、JavaScriptのレベルアップしたいWeb開発初級者の方
  • CSS、JavaScriptでどのようにすればレベルアップできるのか悩んでいる方
学習時間
20.5時間
学習内容
  • JavaScriptの動作原理について深く学びます。
  • JavaScriptがどのように実行されるのかについて深く学びます。
  • ES6+の最新のJavaScriptの記法について幅広く学びます。
  • 変数や参照の仕組みについて深く学びます。
  • オブジェクトのメカニズムについて深く学びます。
  • 関数のメカニズムについて深く学びます。
  • スコープの仕組みについて深く学びます。
  • プロトタイプのメカニズムについて深く学びます。
  • 反復処理のメカニズムについて深く学びます。
  • ジェネレーターやイテレーターについて深く学びます。
  • コールバック関数について深く学びます。
  • 非同期処理のメカニズムについて深く学びます。
  • モジュールの仕組みについて深く学びます。
  • クロージャーの仕組みについて深く学びます。
  • レキシカルスコープの仕組みについて深く学びます。
  • アロー関数の特徴について深く学びます。
  • レキシカルスコープの仕組みについて深く学びます。
  • アロー関数の特徴について深く学びます。
  • thisの仕組みについて深く学びます。
  • bind、apply、callの動作原理について深く学びます。
  • クラスと継承の仕組みについて深く学びます。
  • ReflectやProxyなどの強力なオブジェクトへの理解を深めます。
  • Map,Setなどの強力なコレクションについて実践を交えて学びます。
  • よく使用される強力な実装パターンを演習を交えて学びます。
  • 独自のフレームワークを構築していく中でJavaScriptのメカニズムについて理解を深めます。
対象受講者
  • JavaScriptをコアの動作原理からキチンと理解したい方。
  • 自分の思った通りコードが動かずに悩んでいる方。
  • 自分の思った通りに動かず、気付いたら解決するのに1日経ってしまっていた経験のある方。
  • React, Vue, Angularが使いこなせず悩んでいる方。
  • JavaScriptの不可解な動きが理解できず、苦しんでいる方。
  • 少し複雑なコードを書こうとすると、ぐちゃぐちゃになって整理しきれず、悩んでいる方。
  • JavaScriptを本気で勉強したいと思っている方。
  • JavaScriptの変態仕様に苦しんでいる方。
  • JavaScriptが苦手なプログラマーの方。

-フロントエンド
-,