J'ai le html suivant:
<span data-typeId="123" data-type="topic" data-points="-1" data-important="true" id="the-span"></span>
Est-il possible d'obtenir les attributs commençant par data-
et de les utiliser dans le code JavaScript comme le code ci-dessous? Pour l'instant j'obtiens null
comme résultat.
document.getElementById("the-span").addEventListener("click", function(){
var json = JSON.stringify({
id: parseInt(this.typeId),
subject: this.datatype,
points: parseInt(this.points),
user: "H. Pauwelyn"
});
});
javascript
html
custom-data-attribute
H. Pauwelyn
la source
la source
Réponses:
Vous devez accéder à la
dataset
propriété :Résultat:
la source
Étant donné que la
dataset
propriété n'était pas prise en charge par Internet Explorer jusqu'à la version 11, vous souhaiterez peut-être utiliser à lagetAttribute()
place:Documentation de l'ensemble de données
documentation getAttribute
la source
Vous pouvez y accéder en tant que
etc. Donc dans ce cas:
this.dataset.points
la source
Vous pouvez également récupérer les attributs avec la méthode getAttribute () qui retournera la valeur d'un attribut HTML spécifique.
la source
si vous ciblez l'attribut de données dans l'élément Html,
document.dataset
ne fonctionnera pasTu devrais utiliser
ou
la source
Les navigateurs modernes acceptent HTML et SVG DOMnode.dataset
Utilisation de la propriété d' ensemble de données de nœud DOM de Javascript pur .
C'est un ancien standard Javascript pour les éléments HTML (depuis Chorme 8 et Firefox 6) mais nouveau pour SVG (depuis l'année 2017 avec Chorme 55.x et Firefox 51) ... Ce n'est pas un problème pour SVG car de nos jours (2019) la part d'utilisation de la version est dominée par les navigateurs modernes.
Les valeurs des valeurs-clés de l'ensemble de données sont des chaînes pures, mais une bonne pratique consiste à adopter le format de chaîne JSON pour les types de données non-chaîne, pour l'analyser
JSON.parse()
.Utilisation de la propriété de l' ensemble de données dans n'importe quel contexte
Extrait de code pour obtenir et ensemble valeur clé des jeux de données dans des contextes HTML et SVG.
la source
Vers 2019, en utilisant jquery, il est possible d'y accéder en utilisant
$('#DOMId').data('typeId')
où se$('#DOMId')
trouve le sélecteur jquery pour votre élément span.la source
Essayez ceci au lieu de votre code:
la source
.data('type');
place.JSON
résultat, pasalert
de l'data-type
attribut.