2014-12-08 7 views
20

Das HTML-Objekt:Wie bewahrt man den Fall eines Datenattributs auf?

<div data-myAttribute="test"></div> 

Der Code:

var $o = $("div"); 

$.each($o.data(),function(k,v){ 
    console.log(k); 
    //writes 'myattribute' instead of 'myAttribute' 
}); 

Wie kann ich den Fall des Attributs bewahren?

+7

führen sollten Sie verwenden 'Daten-my-attribute' zu ​​bekommen' .data ('MyAttribute') ' –

+1

einen Blick [hier] (http://stackoverflow.com/q/7641551/4202224) – empiric

+0

@ A.Wolff Danke, das schien mir zu helfen. Trotzdem kann es laut den Antworten * nicht verwendet werden. –

Antwort

7

Wenn Ihr Ziel ist myAttribute als Schlüssel dataset Eigenschaft zum Ziel, sollten Sie data-my-attribute verwenden:

<div data-my-attribute="test"></div> 

Siehe folgenden Link in Bezug auf camelcased Regel: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset

PS: wie Izkata es kommentiert :

Als Referenz für andere führt jquery auch eine Konvertierung durch, so dass $ div.data ('mein-Attribut') dasselbe zurückgibt wie $ div.data ('myAttribute'). Die JavaScript-Datenmengeneigenschaft vanilla tut dies nicht, .

+0

Ich wählte Ihre Antwort, weil es nützlich war und habe getan, was ich brauchte. Vielen Dank. –

+2

Als Referenz für andere führt jQuery auch eine Konvertierung durch, so dass '$ div.data ('mein-attribut')' 'dasselbe zurückgibt wie '$ div.data (' meinAttribut ')'. Die Vanille Javascript 'Dataset' Eigenschaft tut dies nicht. – Izkata

13

Sie können nicht. Attributnamen sind in HTML5 immer Kleinbuchstaben.

36

Valid HTML Datenattribute können nicht Großbuchstaben enthalten sowieso:

Vom W3:

Ein benutzerdefinierten Datenattribut ist ein Attribut in keinem Namensraum, dessen Namen beginnt mit der Zeichenfolge „Data- ", hat mindestens ein Zeichen nach dem Bindestrich, ist XML-kompatibel, und enthält keine Zeichen im Bereich U + 0041 bis U + 005A (LATIN CAPITAL LETTER A bis LATIN CAPITAL LETTER Z).

1

Als Nachtrag zu @A. Wolff ‚s Antwort, können Sie ein -- den Datennamen gelten Attribut, wenn Sie führenden Metropolen wollen.

<div data--my-attribute="test"></div> 

in einem Datenschlüssel von MyAttribute

Verwandte Themen