Les attributs de données personnalisés HTML5 permettent aux développeurs de stocker des données personnalisées dans des éléments HTML. Ils fournissent un moyen d'ajouter des informations supplémentaires aux éléments HTML qui peuvent être utilisés par JavaScript ou CSS, améliorant ainsi les fonctionnalités de la page Web. Cet article expliquera ce que sont les attributs de données et à quoi ils servent.
Points clés
attr()
. getAttribute()
et setAttribute()
, d'attributs de méthodes, dataset
ou de méthodes data()
jQuery. Pourquoi utiliser les propriétés de données personnalisées?
Nous devons souvent stocker des informations associées à différents éléments DOM. Ces informations peuvent ne pas être importantes pour les lecteurs, mais être en mesure d'y accéder facilement facilitera nos efforts de développement. Par exemple, supposons que vous répertoriez différents restaurants sur une page Web. Avant HTML5, si vous souhaitez stocker des informations telles que le type de nourriture fournie par un restaurant ou jusqu'où ils sont des visiteurs, vous utiliserez l'attribut class
de HTML. Et si vous avez également besoin de stocker votre identifiant de restaurant pour consulter le restaurant spécifique que l'utilisateur souhaite visiter? Voici quelques questions sur les méthodes basées sur l'attribut HTML class
:
class
Les propriétés ne sont pas utilisées pour stocker ces données. Son objectif principal est de permettre aux développeurs d'attribuer des informations de style à un ensemble d'éléments. Pour résoudre ces problèmes, HTML5 introduit des propriétés de données personnalisées. Tous les attributs d'élément dont les noms commencent par data-
sont des attributs de données. Vous pouvez également utiliser ces attributs de données pour styliser des éléments. Ensuite, foulons les bases des propriétés de données et apprenons à accéder à leurs valeurs dans CSS et JavaScript.
Syntaxe HTML
Comme mentionné précédemment, le nom de l'attribut de données commencera toujours par data-
. Voici un exemple:
<li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li>
Vous pouvez désormais utiliser ces attributs de données pour rechercher et trier les restaurants des visiteurs. Par exemple, vous pouvez maintenant leur montrer tous les restaurants végétariens à une certaine distance. En plus du préfixe data-
, les noms des attributs de données personnalisés valides ne peuvent contenir que des lettres, des nombres, des traits de gamme (-), des points (.), Des colons (:), ou des soulignements (_). Il ne peut pas contenir de lettres majuscules. Lorsque vous utilisez des propriétés de données, vous devez faire attention à deux choses. Tout d'abord, les données stockées dans ces propriétés doivent être de type de chaîne. Tout contenu qui peut être codé dans les chaînes peut également être stocké dans les propriétés de données. Toutes les conversions de type doivent être effectuées dans JavaScript. Deuxièmement, les attributs de données ne doivent être utilisés que s'il n'y a pas d'autres éléments ou attributs HTML appropriés. Par exemple, il est inapproprié de stocker la classe d'un élément dans l'attribut data-class
. Un élément peut avoir n'importe quel nombre d'attributs de données, ainsi que toute valeur que vous souhaitez.
Attributs de données et CSS
Vous pouvez utiliser le sélecteur d'attribut pour styliser des éléments dans CSS à l'aide d'attributs de données. Vous pouvez également utiliser la fonction attr()
pour afficher des informations stockées dans les propriétés de données à l'utilisateur (dans les info-bullets ou d'autres manières).
Retour à notre exemple de restaurant, vous pouvez définir l'arrière-plan du restaurant de différentes manières en utilisant le sélecteur de propriétés, incité l'utilisateur pour le type de restaurant ou sa distance avec l'utilisateur. Voici un exemple:
li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }
Vous pouvez utiliser des info-bullets pour afficher des informations supplémentaires liées aux éléments à l'utilisateur. Je vous recommande d'utiliser cette méthode pour un prototypage rapide, plutôt que de produire des sites Web, pour la raison qu'au moins les info-bulleurs CSS uniquement ne sont pas entièrement accessibles. Les informations que vous souhaitez afficher peuvent être stockées dans l'attribut data-tooltip
.
<span data-tooltip="简单的解释">Word</span>
Vous pouvez ensuite utiliser le pseudo-élément ::before
pour présenter les données à l'utilisateur.
span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }
Utilisez JavaScript pour accéder aux attributs de données
Il existe trois façons d'accéder aux propriétés de données en JavaScript.
getAttribute
et setAttribute
Vous pouvez utiliser getAttribute()
et setAttribute()
dans JavaScript pour obtenir et définir les valeurs de différents attributs de données. Si la propriété donnée n'existe pas, la méthode getAttribute
retournera null
ou une chaîne vide. Voici un exemple de la façon d'utiliser ces méthodes:
let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");
Vous pouvez utiliser la méthode setAttribute
pour modifier la valeur d'une propriété existante ou ajouter une nouvelle propriété.
restaurant.setAttribute("data-owner-name", "someName");
dataset
Propriétés Une façon plus simple d'accéder aux propriétés de données consiste à utiliser les propriétés dataset
. Cette propriété renvoie un objet DOMStringMap
contenant une entrée pour chaque propriété de données personnalisée. Il y a quelques choses que vous devez être conscientes lors de l'utilisation de l'attribut dataset
. Il faut trois étapes pour convertir l'attribut de données personnalisé à la clé DOMStringMap
:
data-
du nom d'attribut
element.dataset.keyname
Les propriétés sont ensuite accessibles en utilisant le nom de chameau stocké dans l'objet en tant que clé, comme element.dataset[keyname]
. Une autre façon d'accéder aux propriétés consiste à utiliser la notation du support carré, comme
<li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li>
Voici quelques exemples:
li[data-type='veg'] { background: #8BC34A; } li[data-type='french'] { background: #3F51B5; }
Cette méthode est désormais prise en charge dans tous les principaux navigateurs et vous devez les utiliser d'abord pour accéder aux propriétés de données personnalisées.
data()
Vous pouvez également accéder aux propriétés de données d'un élément à l'aide de la méthode
<span data-tooltip="简单的解释">Word</span>
À partir de la version 1.6, JQuery commence à utiliser les versions Camel des propriétés de données. Vous pouvez maintenant faire de même avec le code suivant:
span::before { content: attr(data-tooltip); //更多样式规则 } span:hover::before { display: inline-block; }
null
Vous devez savoir que jQuery tentera également de convertir en interne les chaînes obtenues à partir des propriétés de données en types appropriés tels que les nombres, les booléens, les objets, les tableaux et
let restaurant = document.getElementById("restaurantId"); let ratings = restaurant.getAttribute("data-ratings");
attr()
Si vous voulez que jQuery obtienne la valeur obtenue à partir de l'attribut de données en tant que chaîne sans essayer de la convertir en un autre type, vous devez utiliser la méthode
restaurant.setAttribute("data-owner-name", "someName");
data-distance
Vous pouvez modifier la valeur de son attribut
<li data-type="veg" data-distance="2miles" data-identifier="10318" data-owner-name="someName">Salad King</li>
data-distance
Comme vous pouvez le voir, l'accès à la valeur de l'attribut
Conclusion
Dans ce tutoriel, j'ai couvert toutes les choses importantes sur les propriétés de données HTML5. En plus de créer des info-bulles et des éléments de style à l'aide du sélecteur d'attribut, vous pouvez également utiliser les propriétés de données pour stocker et afficher d'autres données aux utilisateurs, telles que les notifications sur les messages non lus, etc.
(La section FAQ doit être ajoutée ici, le contenu est cohérent avec la partie FAQ dans le texte d'entrée, mais l'expression du langage peut être plus raffinée. Pour éviter la duplication, j'omet cette partie.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!