Maison > interface Web > js tutoriel > Comment vous pouvez utiliser les attributs de données personnalisés HTML5 et pourquoi

Comment vous pouvez utiliser les attributs de données personnalisés HTML5 et pourquoi

William Shakespeare
Libérer: 2025-02-17 08:24:12
original
866 Les gens l'ont consulté

How You Can Use HTML5 Custom Data Attributes and Why

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

  • Les attributs de données personnalisés HTML5 permettent aux développeurs de stocker des informations supplémentaires sur les éléments HTML qui peuvent être accessibles et utilisés par JavaScript ou CSS, améliorant ainsi les fonctionnalités de la page Web.
  • Les attributs de données commencent toujours par "data-", peuvent être utilisés pour styliser des éléments dans CSS via le sélecteur d'attribut et peuvent afficher des informations à l'utilisateur via la fonction attr().
  • Dans JavaScript, les propriétés de données sont accessibles à l'aide de méthodes getAttribute() et setAttribute(), d'attributs de méthodes, dataset ou de méthodes data() jQuery.
  • Bien que les attributs de données personnalisés soient puissants, ils ne doivent être utilisés que s'il n'y a pas d'autres éléments ou attributs HTML appropriés et ne doivent pas être utilisés pour stocker de grandes quantités de données.

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:

  • HTML 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.
  • chaque fois que l'ajout d'un message, une nouvelle classe est nécessaire pour ajouter à l'élément. Cela rend l'analyse des données en JavaScript pour rendre les informations requises encore plus difficiles.
  • Supposons que le nom de classe donné commence par un nombre. Si vous décidez de styliser l'élément plus tard en fonction des données du nom de la classe, vous devez échapper aux numéros ou utiliser le sélecteur d'attribut dans la feuille de style.

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>
Copier après la connexion
Copier après la connexion

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).

Définissez le style élément

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;
}
Copier après la connexion
Copier après la connexion

Créer des info-bullets

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>
Copier après la connexion
Copier après la connexion

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;
}
Copier après la connexion
Copier après la connexion

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.

utiliser 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");
Copier après la connexion
Copier après la connexion

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");
Copier après la connexion
Copier après la connexion

Utiliser 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:

  • Supprimez le préfixe data- du nom d'attribut
  • Retirez n'importe quel trait d'union suivi des lettres minuscules du nom et convertissez les lettres suivantes en majuscules
  • D'autres personnages resteront les mêmes. Cela signifie que tout trait d'union suivi de lettres minuscules restera également les mêmes.

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

. Considérez le HTML suivant:
<li data-type="veg" data-distance="2miles" data-identifier="10318">Salad King</li>
Copier après la connexion
Copier après la connexion

Voici quelques exemples:
li[data-type='veg'] {
  background: #8BC34A;
}

li[data-type='french'] {
  background: #3F51B5;
}
Copier après la connexion
Copier après la connexion

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.

en utilisant jQuery

data() Vous pouvez également accéder aux propriétés de données d'un élément à l'aide de la méthode

de JQuery. Avant JQuery version 1.6, vous devez accéder aux propriétés de données en utilisant le code suivant:
<span data-tooltip="简单的解释">Word</span>
Copier après la connexion
Copier après la connexion

À 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;
}
Copier après la connexion
Copier après la connexion

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");
Copier après la connexion
Copier après la connexion

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

de JQuery. JQuery récupère sa valeur uniquement lorsque l'attribut de données est accessible pour la première fois. Ne plus accéder ni ne modifier les propriétés de données. Toutes les modifications que vous apportez à ces propriétés sont apportées en interne et ne sont accessibles qu'en jQuery. Supposons que vous fonctionnez sur les attributs de données de la liste suivante élément:
restaurant.setAttribute("data-owner-name", "someName");
Copier après la connexion
Copier après la connexion

data-distance Vous pouvez modifier la valeur de son attribut

en utilisant le code suivant:
<li data-type="veg" data-distance="2miles" data-identifier="10318" data-owner-name="someName">Salad King</li>
Copier après la connexion

data-distance Comme vous pouvez le voir, l'accès à la valeur de l'attribut

à l'aide de JavaScript natif (non-jQuery) fournira toujours les anciens résultats.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal