Wie überprüft man, ob ein Datenattribut mit normalem Javascript existiert?

7

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%     
jollykoshy 27.08.2015, 12:55
quelle

6 Antworten

16

Element.getAttribute gibt null oder eine leere Zeichenfolge zurück, wenn das Attribut verwendet wird existiert nicht.

Sie würden Element.hasAttribute verwenden:

%Vor%

oder Element.dataset (siehe auch: in -Operator ):

%Vor%

oder sogar

%Vor%     
vaultah 27.08.2015, 12:58
quelle
3

Die Überprüfung gegen null ergab auch die Lösung.

%Vor%     
jollykoshy 27.08.2015 13:17
quelle
2

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.

%Vor%

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 entweder null 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:

David Thomas 27.08.2015 13:07
quelle
1

Sie können nur die Überprüfung des Wertes durchführen

%Vor%

cause getAttribute kann eine leere oder leere Zeichenfolge zurückgeben

Sie können auch object.hasAttribute("data-params") verwenden, um zu überprüfen, ob das Attribut existiert

    
Andrey 27.08.2015 12:58
quelle
0

Versuchen Sie es mit typeof :

%Vor%     
Tobias Golbs 27.08.2015 12:56
quelle
0

Sie können auch einfach die Dataset-API verwenden.

HTMLElement.dataset

  

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

%Vor% %Vor%
    
DavidDomain 27.08.2015 13:16
quelle

Tags und Links