ホームページ >ウェブフロントエンド >jsチュートリアル >HTML5カスタムデータ属性の使用方法とその理由
HTML5カスタムデータ属性により、開発者はHTML要素にカスタムデータを保存できます。これらは、JavaScriptまたはCSSで使用できるHTML要素に追加情報を追加する方法を提供し、それによりWebページ機能を強化します。この記事では、データ属性が何であるか、どのようなデータ属性となっているのかを説明します。
キーポイント
attr()
関数を介してユーザーに情報を表示できます。 getAttribute()
カスタムデータ属性は強力ですが、他の適切なHTML要素または属性がない場合にのみ使用する必要があり、大量のデータを保存するために使用しないでください。 setAttribute()
dataset
data()
属性を使用します。また、ユーザーが訪問したい特定のレストランを表示するためにレストランIDを保存する必要がある場合はどうなりますか? html属性に基づく方法に関するいくつかの質問を以下に示します:
HTMLclass
プロパティは、そのようなデータを保存するために使用されません。その主な目的は、開発者が一連の要素にスタイル情報を割り当てることを許可することです。 class
class
で開始されます。例は次のとおりです。data-
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li></code>
これらのデータ属性を使用して、訪問者のレストランを検索およびソートできるようになりました。たとえば、すべてのベジタリアンレストランを特定の距離以内に表示できるようになりました。 data-
プレフィックスに加えて、有効なカスタムデータ属性の名前には、文字、数字、ハイフン( - )、ドット(。)、コロン(:)、またはアンダースコア(_)のみを含めることができます。大文字を含めることはできません。データプロパティを使用する場合、2つのことに注意を払う必要があります。まず、これらのプロパティに保存されているデータは、文字列型でなければなりません。文字列でエンコードできるコンテンツは、データプロパティにも保存できます。すべてのタイプ変換はJavaScriptで実行する必要があります。第二に、他の適切なHTML要素または属性がない場合にのみ、データ属性を使用する必要があります。たとえば、要素のクラスをdata-class
属性に保存することは不適切です。要素には、任意の数のデータ属性と必要な値を持つことができます。
データ属性とcss
属性セレクターを使用して、データ属性を使用してCSSの要素をスタイリングできます。また、attr()
<code class="language-css">li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }</code>ツールチップの作成
属性に保存できます。 data-tooltip
<code class="language-html"><span data-tooltip="简单的解释">Word</span></code>
::before
<code class="language-css">span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }</code>javaScriptを使用してデータ属性にアクセス
JavaScriptにデータプロパティにアクセスするには、3つの方法があります。
およびgetAttribute
を使用します
setAttribute
javaScriptのを使用して、異なるデータ属性の値を取得して設定できます。指定されたプロパティが存在しない場合、getAttribute()
メソッドはsetAttribute()
または空の文字列を返します。これらの方法の使用方法の例は次のとおりです。
getAttribute
null
<code class="language-javascript">let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");</code>
setAttribute
<code class="language-javascript">restaurant.setAttribute("data-owner-name", "someName");</code>を使用します
dataset
プロパティを使用することです。このプロパティは、各カスタムデータプロパティのエントリを含む属性を使用するときに注意する必要があることがいくつかあります。カスタムデータ属性をdataset
キーに変換するには3つの手順が必要です:DOMStringMap
data-
element.dataset.keyname
プロパティは、オブジェクトに保存されているラクダ名をキーとしてelement.dataset[keyname]
などのキーとして使用してアクセスできます。プロパティにアクセスするもう1つの方法は、
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li></code>
以下にいくつかの例があります:
<code class="language-css">li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }</code>
このメソッドはすべての主要なブラウザでサポートされているため、まず使用してカスタムデータプロパティにアクセスする必要があります。
を使用します
data()
jQueryの
<code class="language-html"><span data-tooltip="简单的解释">Word</span></code>
バージョン1.6から始めて、jQueryはデータプロパティのキャメルバージョンの使用を開始します。これで、次のコードでも同じことができます。
<code class="language-css">span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }</code>jQueryは、データプロパティから得られた文字列を数字、ブール人、オブジェクト、アレイ、
などの適切なタイプに内部的に変換しようとすることを知っておく必要があります。 null
<code class="language-javascript">let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");</code>jQueryに、別のタイプに変換しようとすることなく、jqueryにデータ属性から取得して文字列として取得したい場合は、jqueryの
メソッドを使用する必要があります。 jQueryは、データ属性が初めてアクセスされた場合にのみ、その値を取得します。その後、データプロパティにアクセスしたり変更されたりしなくなります。これらのプロパティに対して行うすべての変更は内部で作成され、jQueryでのみアクセスできます。次のリスト項目のデータ属性を操作しているとします。
attr()
<code class="language-javascript">restaurant.setAttribute("data-owner-name", "someName");</code>属性の値を変更できます。
ご覧のとおり、Native JavaScript(非jquery)を使用してdata-distance
属性の値にアクセスすると、古い結果が得られます。
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318" data-owner-name="someName">Salad King</li></code>
結論data-distance
(FAQセクションをここに追加する必要があります。コンテンツは入力テキストのFAQパーツと一致していますが、言語式はより洗練されます。複製を避けるために、この部分を省略します。
以上がHTML5カスタムデータ属性の使用方法とその理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。