Ich möchte überprüfen, ob ein HTML5-Datenattribut mit normalem JavaScript vorhanden ist. Ich habe das folgende Code-Snippet ausprobiert, aber es funktioniert nicht.
%Vor% Element.getAttribute
gibt null
oder eine leere Zeichenfolge zurück, wenn das Attribut verwendet wird existiert nicht.
Sie würden Element.hasAttribute
verwenden:
oder Element.dataset
(siehe auch: in
-Operator ):
oder sogar
%Vor% Der Code, den Sie gepostet haben, wird nicht wie erwartet funktionieren, was Sie hier tun, ist zu überprüfen, ob der Attributwert des benannten Attributs ( "data-params"
) gleich "undefined"
ist, was zurückkommt true
nur, wenn das Attribut data-params="undefined"
ist.
Was ich vermuten möchte, ist:
%Vor% Beachten Sie, dass - entsprechend dem Mozilla Developer Network (auf der Referenz für Element.getAttribute()
, unten) - steht:
getAttribute()
gibt den Wert eines angegebenen Attributs für das Element zurück. Wenn das angegebene Attribut nicht existiert, lautet der zurückgegebene Wert entwedernull
oder""
(die leere Zeichenfolge) ...
Bemerkenswert ist auch, dass getAttribute()
eher eine Methode der Element-Knoten als generische Objekte ist.
Sie können übrigens auch den folgenden Ansatz verwenden (erneut testen, dass das Attribut nicht festgelegt ist):
%Vor%Referenzen:
Element.getAttribute()
. HTMLElement.dataset
. in
operator . typeof
operator . Sie können auch einfach die Dataset-API verwenden.
Die schreibgeschützte HTMLElement.dataset-Eigenschaft ermöglicht den Zugriff auf alle benutzerdefinierten Datenattribute (Daten *), die für das Element festgelegt wurden, sowohl im Lese- als auch im Schreibmodus. Es ist eine Karte von DOMString, ein Eintrag für jedes benutzerdefinierte Datenattribut.
Leider wird das in IE10 nicht funktionieren, aber ich bin mir ziemlich sicher, dass da irgendwo ein Shim ist.
Hier ist ein Beispiel
Tags und Links javascript html5