Heim >Web-Frontend >js-Tutorial >Wie Sie HTML5 -benutzerdefinierte Datenattribute verwenden können und warum
HTML5 -Datenattribute können Entwicklern benutzerdefinierte Daten in HTML -Elementen speichern. Sie bieten eine Möglichkeit, HTML -Elementen zusätzliche Informationen hinzuzufügen, die von JavaScript oder CSS verwendet werden können, wodurch die Webseitenfunktionalität verbessert werden kann. In diesem Artikel wird erläutert, welche Datenattribute sind und wofür sie sind.
Schlüsselpunkte
attr()
-Funktion anzuzeigen. getAttribute()
und setAttribute()
Methoden, dataset
-attribute oder JQuery -Methoden zugegriffen werden. data()
Warum verwenden Sie benutzerdefinierte Dateneigenschaften?
Wir müssen häufig Informationen speichern, die mit verschiedenen DOM -Elementen verbunden sind. Diese Informationen sind für die Leser möglicherweise nicht wichtig, aber es wird unsere Entwicklungsbemühungen erheblich erleichtern. Angenommen, Sie listen verschiedene Restaurants auf einer Webseite auf. Wenn Sie vor HTML5 Informationen wie die Art der Lebensmittel speichern möchten, die von einem Restaurant bereitgestellt wird oder wie weit sie von den Besuchern sind, verwenden Sie das -Merkmal von HTML. Was ist, wenn Sie auch Ihre Restaurant -ID aufbewahren müssen, um das spezifische Restaurant anzusehen, das der Benutzer besuchen möchte? Hier sind einige Fragen zu den Methoden basierend auf HTML class
Attribut: class
class
beginnen, sind Datenattribute. Sie können diese Datenattribute auch für Stilelemente verwenden. Geben Sie als nächstes die Grundlagen der Dateneigenschaften ein und lernen Sie, wie Sie auf ihre Werte in CSS und JavaScript zugreifen können. data-
html syntax
Wie bereits erwähnt, beginnt der Name des Datenattributs immer mit. Hier ist ein Beispiel: data-
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li></code>
Sie können diese Datenattribute jetzt verwenden, um die Restaurants der Besucher zu durchsuchen und zu sortieren. Zum Beispiel können Sie ihnen jetzt alle vegetarischen Restaurants in einer bestimmten Entfernung zeigen. Zusätzlich zum data-
Präfix können die Namen gültiger benutzerdefinierter Datenattribute nur Buchstaben, Zahlen, Bindestriche (-), Punkte (.), Colons (:) oder unterstrichen (_) enthalten. Es kann keine Großbuchstaben enthalten. Bei Verwendung von Dateneigenschaften müssen Sie auf zwei Dinge achten. Zunächst sollten die in diesen Eigenschaften gespeicherten Daten vom Typ String sein. Jeder Inhalt, der in Strings codiert werden kann, kann auch in Dateneigenschaften gespeichert werden. Alle Typkonvertierungen müssen in JavaScript durchgeführt werden. Zweitens sollten Datenattribute nur verwendet werden, wenn keine anderen geeigneten HTML -Elemente oder -attribute vorhanden sind. Zum Beispiel ist es unangemessen, die Klasse eines Elements im Attribut data-class
zu speichern. Ein Element kann eine beliebige Anzahl von Datenattributen sowie jeden gewünschten Wert haben.
Datenattribute und CSS
Sie können den Attribut -Selektor verwenden, um Elemente in CSS unter Verwendung von Datenattributen zu stylen. Sie können auch die Funktion attr()
verwenden, um Informationen anzuzeigen, die in Dateneigenschaften dem Benutzer gespeichert sind (auf Tooltips oder andere Arten).
Zurück zu unserem Beispiel für Restaurants können Sie den Hintergrund des Restaurants auf unterschiedliche Weise mit dem Immobilienauswahl einstellen und den Benutzer für die Art des Restaurants oder deren Entfernung vom Benutzer auffordern. Hier ist ein Beispiel:
<code class="language-css">li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }</code>
Sie können Tooltips verwenden, um zusätzliche Informationen zu Elementen für den Benutzer anzuzeigen. Ich empfehle Ihnen, diese Methode zum schnellen Prototyping zu verwenden, anstatt Websites zu produzieren, da zumindest die CSS-Tooltips nicht vollständig zugänglich sind. Die Informationen, die Sie anzeigen möchten, können im Attribut data-tooltip
gespeichert werden.
<code class="language-html"><span data-tooltip="简单的解释">Word</span></code>
Sie können dann die ::before
pseudoelement verwenden, um die Daten dem Benutzer vorzustellen.
<code class="language-css">span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }</code>
Verwenden Sie JavaScript, um auf Datenattribute zuzugreifen
Es gibt drei Möglichkeiten, in JavaScript auf Dateneigenschaften zuzugreifen.
getAttribute
und setAttribute
Sie können in JavaScript getAttribute()
und setAttribute()
verwenden, um die Werte verschiedener Datenattribute zu erhalten und festzulegen. Wenn die angegebene Eigenschaft nicht vorhanden ist, gibt die getAttribute
-Methode null
oder eine leere Zeichenfolge zurück. Hier ist ein Beispiel dafür, wie diese Methoden verwendet werden:
<code class="language-javascript">let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");</code>
Sie können die Methode setAttribute
verwenden, um den Wert einer vorhandenen Eigenschaft zu ändern oder eine neue Eigenschaft hinzuzufügen.
<code class="language-javascript">restaurant.setAttribute("data-owner-name", "someName");</code>
dataset
Eigenschaften Ein einfacherer Weg, um auf Dateneigenschaften zuzugreifen, besteht darin, dataset
Eigenschaften zu verwenden. Diese Eigenschaft gibt ein DOMStringMap
-Objekt zurück, das einen Eintrag für jede benutzerdefinierte Dateneigenschaft enthält. Es gibt einige Dinge, die Sie bei der Verwendung des dataset
-attributs bewusst sein müssen. Es werden drei Schritte durchgeführt, um das benutzerdefinierte Datenattribut in die Taste DOMStringMap
zu konvertieren:
data-
aus dem Attributnamen
element.dataset.keyname
Die Eigenschaften können dann mit dem im Objekt als Schlüssel gespeicherten Kamelnamen wie element.dataset[keyname]
zugegriffen werden. Eine andere Möglichkeit, auf Eigenschaften zuzugreifen, besteht darin, eine quadratische Halterungsnotation wie
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li></code>
Folgende Beispiele:
<code class="language-css">li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }</code>
Diese Methode wird jetzt in allen wichtigen Browsern unterstützt und Sie sollten sie zuerst verwenden, um auf benutzerdefinierte Dateneigenschaften zuzugreifen.
data()
Sie können auch die Dateneigenschaften eines Elements mit der
<code class="language-html"><span data-tooltip="简单的解释">Word</span></code>
Ab Version 1.6 beginnt JQuery mit der Verwendung von Kamelversionen von Dateneigenschaften. Jetzt können Sie dasselbe mit dem folgenden Code tun:
<code class="language-css">span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }</code>
null
Sie sollten wissen, dass JQuery auch versuchen wird, die von Dateneigenschaften erhaltenen Zeichenfolgen in geeignete Typen wie Zahlen, Booleans, Objekte, Arrays und
<code class="language-javascript">let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");</code>
attr()
Wenn Sie möchten, dass JQuery den Wert des Datenattributs als Zeichenfolge erhalten, ohne zu versuchen, ihn in einen anderen Typ zu konvertieren, sollten Sie die
<code class="language-javascript">restaurant.setAttribute("data-owner-name", "someName");</code>
data-distance
Sie können den Wert seines
<code class="language-html"><li data-type="veg" data-distance="2miles" data-identifier="10318" data-owner-name="someName">Salad King</li></code>
data-distance
Wie Sie sehen können, liefert der Zugriff auf den Wert des
Schlussfolgerung
In diesem Tutorial habe ich alle wichtigen Dinge über HTML5 -Dateneigenschaften behandelt. Zusätzlich zum Erstellen von Tooltips und Styleing -Elementen mithilfe des Attributauswahls können Sie auch Dateneigenschaften verwenden, um Benutzer zu speichern und an Benutzer anzuzeigen, z. B. Benachrichtigungen über ungelesene Nachrichten und mehr.
(Der FAQ -Abschnitt sollte hier hinzugefügt werden, der Inhalt stimmt mit dem FAQ -Teil im Eingabetxt überein, aber der Sprachausdruck kann verfeinert werden. Um eine Duplikation zu vermeiden, lasse ich diesen Teil weg.)
Das obige ist der detaillierte Inhalt vonWie Sie HTML5 -benutzerdefinierte Datenattribute verwenden können und warum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!