2016-05-20 20 views
-1

HTML-Schnipsel:Get Element mit Hyphen in Javascript

<input title="List" data-id="1698481"> 

In 11 IE Konsole, ich habe versucht, verschiedene Befehle, und alles ohne Bindestrich wieder richtig kommt, bis ich Hit "Daten-ID."

document.getElementsByTagName("input")[0].title 
"List" 
document.getElementsByTagName("input")[0].data-id 
'id' is undefined 

Wie schon aus anderen Threads zu diesem Thema habe ich versucht, andere Schreibweisen (Kamel Fall, etc.), aber ich kann immer noch nicht in jedem Wert

document.getElementsByTagName("input")[0].dataId 
undefined 
document.getElementsByTagName("input")[0].["data-id"] 
Expected identifier 
document.getElementsByTagName("input")[0].['data-id'] 
Expected identifier 

Jede mögliche Unterstützung zurückkehren würde geschätzt.

+0

[Zugang 'Daten-' Attribut ohne jQuery] (http://stackoverflow.com/questions/15912246/access-data-attribute-without-jquery) und [Wie Holen Sie sich das Data-ID-Attribut?] (http://stackoverflow.com/questions/5309926/how-to-get-the-data-id-attribute) –

+0

Ich empfehle, einige JavaScript-Grundlagen zum Zugriff auf Eigenschaften zu besuchen: https://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json. ('[0]. ['Data-id']' ist einfach eine ungültige Syntax) –

Antwort

0

Die data-* Attribute sind besondere:

document.getElementsByTagName("input")[0].dataset.id 

Daten- * Attribute werden von Bindestrichen zu camelcase umgewandelt, so dass ein data-test-attribute="test" wäre gleichbedeutend mit:

htmlElement.dataset.testAttribute; // test 

Weitere Informationen the MDN on dataset sehen.

+1

Das funktioniert auch, aber es wird nicht so häufig als '.getAttribute()' unterstützt. –

+0

@Gothdo Sie sind richtig, aber die Unterstützung ist ziemlich weit: http://caniuse.com/#feat=dataset – Quantastical

0

Verwendung .getAttribute():

document.getElementsByTagName("input")[0].getAttribute("data-id")