HTML datasetで取得更新する方法を完全解説初心者向けガイド
生徒
「HTMLのdatasetって何ですか。data属性とどう違うんですか。」
先生
「datasetはHTMLのdata属性をJavaScriptから読み取ったり書き換えたりするための仕組みです。Webページの中にしまったメモを取り出すイメージですよ。」
生徒
「書き換えたら画面にもすぐ反映されるんですか。」
先生
「はい。正しく使えばHTMLのdata属性も更新されます。ただし注意点もあります。これから順番に見ていきましょう。」
1. HTML datasetとは何かをやさしく解説
HTML datasetとは、HTMLのdata属性をJavaScriptで簡単に取得更新するための機能です。HTMLのdata属性とは、dataから始まるカスタム属性のことをいいます。カスタムとは自由に決められるという意味です。
たとえば、data-userやdata-priceのように書くことで、画面には表示しないけれど内部で使うデータを保存できます。これをJavaScriptで扱うときに使うのがdatasetです。
初心者の方は、data属性を引き出し、datasetをその引き出しを開けるための取っ手と考えると分かりやすいです。HTMLとJavaScriptをつなぐ大切な役割を持っています。
2. datasetでデータを取得する方法
まずはHTMLにdata属性を書きます。そしてJavaScriptでdatasetを使って値を取得します。取得とは、保存してある値を読み出すことです。
<button id="btn" data-message="こんにちは">ボタン</button>
<script>
const button = document.getElementById("btn");
const message = button.dataset.message;
console.log(message);
</script>
ブラウザ表示
上の例では、data-messageの値をdataset.messageで取得しています。dataの後ろにハイフンがある場合は、datasetではハイフンを消して次の単語を小文字で続けます。これをキャメルケースといいます。
キャメルケースとは、単語の区切りを大文字で表す書き方のことです。datasetではこのルールが使われます。
3. datasetでデータを更新する方法
次はdatasetを使ってdata属性を書き換える方法です。更新とは、今ある値を別の値に変更することです。
<div id="item" data-price="1000">商品</div>
<script>
const item = document.getElementById("item");
item.dataset.price = "1500";
console.log(item.dataset.price);
</script>
ブラウザ表示
このようにdataset.priceに新しい値を代入すると、HTMLのdata-priceも同時に書き換わります。画面の裏側にあるメモを直接書き直しているイメージです。
HTML data属性の書き換えは、動的なWebページ制作でよく使われます。ショッピングサイトやボタンの状態管理などに活用されています。
4. 書き換えが画面に反映される仕組み
datasetで値を更新すると、HTMLの属性そのものが変更されます。ただし、画面の表示が変わるかどうかは別問題です。
たとえばdata属性は基本的に表示用ではありません。そのため、data属性を変えても見た目は自動で変わらないことが多いです。見た目に反映させたい場合は、その値を使ってテキストを書き換える必要があります。
<p id="status" data-state="off">現在の状態はオフです</p>
<button id="toggle">切り替え</button>
<script>
const status = document.getElementById("status");
const toggle = document.getElementById("toggle");
toggle.addEventListener("click", function() {
status.dataset.state = "on";
status.textContent = "現在の状態はオンです";
});
</script>
ブラウザ表示
このように、datasetの変更と同時にtextContentを書き換えることで、画面にも反映できます。textContentとは、タグの中の文字を変更するプロパティです。
5. dataset使用時の注意点
HTML datasetを使うときはいくつか注意点があります。まず、datasetで扱えるのは文字列だけです。数字に見えても実際は文字として保存されます。計算する場合は数値に変換する必要があります。
また、data-user-idのようにハイフンが複数ある場合はdataset.userIdのように変換されます。書き方を間違えると値が取得できません。
さらに、存在しないdata属性をdatasetで読もうとするとundefinedになります。undefinedとは値が存在しない状態を意味します。
6. datasetとgetAttributeの違い
HTML data属性の取得方法にはgetAttributeもあります。これは属性を直接読み取る方法です。
<div id="box" data-color="red"></div>
<script>
const box = document.getElementById("box");
const value1 = box.dataset.color;
const value2 = box.getAttribute("data-color");
console.log(value1);
console.log(value2);
</script>
ブラウザ表示
datasetはdata属性専用で書きやすい方法です。一方でgetAttributeはすべての属性を取得できます。HTML data属性を頻繁に扱う場合はdatasetの方が読みやすく初心者にもおすすめです。
HTML data属性とJavaScript datasetの理解は、Web開発の基礎です。正しい取得更新の方法と反映の仕組みを知っておくことで、エラーを防ぎ、保守しやすいコードが書けるようになります。
まとめ
今回はHTML datasetで取得更新する方法を中心に、HTML data属性の基本からJavaScriptによる読み取り方法、書き換え方法、そして画面への反映の仕組みまでを順番に確認しました。HTML data属性はdataから始まるカスタム属性であり、Webページの内部データを安全に保存できる便利な仕組みです。そしてdatasetは、そのdata属性をJavaScriptから簡単に取得更新できる専用のプロパティです。HTMLとJavaScriptを連携させるための重要な橋渡しの役割を持っています。
HTML datasetで取得する場合は、data-messageのような属性をdataset.messageというキャメルケースで読み取ることがポイントでした。ハイフン区切りのdata-user-idはdataset.userIdのように変換されます。このルールを理解することで、HTML data属性とJavaScript datasetの対応関係が明確になります。取得できない場合はundefinedになること、そして値は文字列として扱われることも重要な知識です。数値計算を行う場合は型変換を忘れないようにする必要があります。
また、HTML datasetで更新する方法では、dataset.priceのように代入するだけでdata属性そのものが書き換わることを学びました。ただし、data属性を書き換えても画面表示は自動では変わらない場合が多いです。見た目に反映させるためにはtextContentやinnerHTMLなどを併用して、ユーザーに見える部分も更新する必要があります。HTML datasetの変更と画面更新は別であるという理解が、動的なWebページ制作ではとても大切です。
さらに、datasetとgetAttributeの違いも確認しました。getAttributeはすべての属性を取得できる汎用的な方法ですが、HTML data属性に特化しているわけではありません。一方、datasetはHTML data属性専用であり、コードが読みやすく保守もしやすいという特徴があります。初心者の方がHTML data属性を扱うなら、まずはdatasetの使い方をしっかり身につけることが大切です。
HTML datasetの理解は、フロントエンド開発の基礎力を高める大切なステップです。ボタンの状態管理、商品情報の保持、ユーザー情報の一時保存など、さまざまな場面で活用できます。HTML data属性とJavaScript datasetを正しく使いこなせるようになることで、より柔軟で保守性の高いWebページを作成できるようになります。
サンプルプログラムで総復習
<div class="card p-3">
<p id="product" data-name="りんご" data-price="300">商品名 りんご 価格 300円</p>
<button id="change" class="btn btn-primary">価格を変更</button>
</div>
<script>
const product = document.getElementById("product");
const change = document.getElementById("change");
change.addEventListener("click", function() {
const currentPrice = Number(product.dataset.price);
const newPrice = currentPrice + 100;
product.dataset.price = String(newPrice);
product.textContent = "商品名 " + product.dataset.name + " 価格 " + newPrice + "円";
});
</script>
ブラウザ表示
このサンプルプログラムでは、HTML data属性に保存した商品名と価格をdatasetで取得し、価格を更新しています。dataset.priceは文字列であるため、Numberで数値に変換してから計算し、最後にStringで文字列へ戻しています。この流れを理解することで、HTML datasetの取得更新と画面反映の基本が身につきます。
生徒
HTML datasetはdata属性をJavaScriptで取得更新するための仕組みだと分かりました。data属性は画面に表示しない内部データを保存できるんですね。
先生
その通りです。HTML data属性とJavaScript datasetはセットで考えると理解しやすいです。キャメルケースへの変換も重要でしたね。
生徒
はい。data-user-idはdataset.userIdになること、値は文字列で扱われること、画面に反映するにはtextContentも書き換える必要があることを学びました。
先生
とても良い理解です。HTML datasetの取得方法と更新方法、そして反映の注意点を押さえれば、動的なWebページ制作の基礎はしっかり身につきます。これからも実際に手を動かして練習していきましょう。
「意味」がわかればWebは楽しい!現役エンジニアが教える、挫折しないためのHTML構造化入門
「Webの仕組み」を正しく操る。HTML5でプロフェッショナルな情報設計の第一歩を。
本講座では、単なるタグの暗記ではなく、「検索エンジンやAIに正しく伝わる情報の構造化」という本質的な技術を学びます。モダンWebの土台であるHTML5を通じて、将来的にWebデザイナーやフロントエンドエンジニアを目指すための「稼げる基礎力」を最短距離で身につけます。
具体的なワークショップ内容と環境
【つくるもの】
自己紹介やポートフォリオの土台となる「構造化されたWebページ」を作成します。見出し、段落、リスト、リンク、画像配置など、商用サイトでも必ず使われる「セマンティックなマークアップ」をゼロから体験してください。
【開発環境】
世界中のプロが愛用するVisual Studio Code (VS Code)を使用します。Emmet(高速入力機能)の設定から、HTMLの文法ミスを自動チェックする拡張機能まで、現場基準の効率的な環境を一緒に構築します。
この60分で得られる3つの武器
Googleから高く評価されるタグの選び方を理解し、検索上位を狙えるサイト構造の作り方を学びます。
プロが使うショートカットや自動補完機能を習得し、タイピングの手間を最小限にする技術を体得します。
画像への代替テキストや適切な階層構造など、誰にとっても使いやすい「優しいWeb」の作り方を伝授します。
※本講座は、将来的にWebデザイナー、コーダー、フロントエンドエンジニアを目指す未経験者のためのエントリー講座です。「モクモク」独自のマンツーマン形式により、コードを1行書くたびに生まれる疑問をその場で解決します。
現役エンジニアが教えるHTML入門
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら