Ich habe nächstes HTML:
<span data-typeId="123" data-type="topic" data-points="-1" data-important="true" id="the-span"></span>
Ist es möglich, die Attribute, die mit beginnen data-
, abzurufen und im JavaScript- Code wie den folgenden Code zu verwenden? Vorerst bekomme ich null
als Ergebnis.
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
quelle
quelle
Antworten:
Sie müssen auf die
dataset
Eigenschaft zugreifen :Ergebnis:
quelle
Da die
dataset
Eigenschaft von Internet Explorer bis Version 11 nicht unterstützt wurde, möchten Sie möglicherweisegetAttribute()
stattdessen Folgendes verwenden :Datensatzdokumentation
getAttribute-Dokumentation
quelle
Sie können darauf zugreifen als
usw. Also in diesem Fall:
this.dataset.points
quelle
Sie können die Attribute auch mit der Methode getAttribute () abrufen , die den Wert eines bestimmten HTML-Attributs zurückgibt .
quelle
Wenn Sie auf ein Datenattribut im HTML-Element abzielen,
document.dataset
wird nicht funktionierendu solltest benutzen
oder
quelle
Moderne Browser akzeptieren HTML und SVG DOMnode.dataset
Verwenden der DOM-Node- Dataset- Eigenschaft von reinem Javascript .
Es ist ein alter Javascript-Standard für HTML-Elemente (seit Chorme 8 und Firefox 6), aber neu für SVG (seit 2017 mit Chorme 55.x und Firefox 51) ... Es ist kein Problem für SVG, da heutzutage (2019) Der Nutzungsanteil der Version wird von modernen Browsern dominiert.
Die Werte der Schlüsselwerte des Datasets sind reine Zeichenfolgen. Es empfiehlt sich jedoch, das JSON-Zeichenfolgenformat für Datentypen ohne Zeichenfolge zu verwenden, um es zu analysieren
JSON.parse()
.Verwenden der Dataset- Eigenschaft in einem beliebigen Kontext
Code-Snippet zum Abrufen und Festlegen von Schlüsselwert- Datasets in HTML- und SVG-Kontexten.
quelle
Circa 2019 mit Jquery, kann dies über die zugegriffen werden soll ,
$('#DOMId').data('typeId')
wo$('#DOMId')
der jQuery - Selektor für die span - Element ist.quelle
Versuchen Sie dies anstelle Ihres Codes:
quelle
.data('type');
stattdessen sein.JSON
Ergebnis der Ereignisbehandlung beibehalten und nicht einesalert
derdata-type
Attribute.