2012-10-13 14 views
17

Htmljquery Datensatz attr

<div id="you" data-you="Hello mean">super</div> 

ist #you html Elementwechsel Daten Sie

console.log($("#you").data("you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").data("you")); // Hello mean | does not change. 

Attribut "Daten Sie" -Attribut nicht ändert, wenn ich ändern. Wie kann ich das machen?

danke.

Antwort

23

attr() Und Sie können nicht die Methode daten() ändern müssen.

Versuchen Sie, die folgende Weise:

console.log($("#you").data("you")); // Hello mean 

$("#you").data("you", "yes change you atribute"); // yes change you atribute 

console.log($("#you").data("you")); // yes change you atribute 

Beispiele von Daten http://api.jquery.com/data/

+1

Danke sehr, das hat diesmal geklappt. –

+1

Wenn jemand die erste Zeile der obigen Antwort verwirrend findet, überprüfen Sie bitte meine Antwort unten. –

2

Auf dem gleichen Logik, um das Ergebnis zu sehen; ändern data zu attr

console.log($("#you").attr("data-you")); 

Siehe LIVE DEMO

1

Try this:

$("#you").data("you", "yes change you atribute"); 
46

Es schon eine Antwort als richtigen gewählt wurde, aber sein scheinen wie keine der Antworten erklären Sie klar und deutlich, was passiert.
So lassen Sie mich ein Schuss:

$(element).data(key, value)nicht Änderung der html5 ‚Daten- *‘ Attribute des Elements, speichert jQuery intern den Schlüsselwert (in jQuery.cache).
Als Ergebnis, wenn Sie $(element).data(key) aufrufen, erhalten Sie, was intern von jQuery gespeichert wird.

Sie hier Ihre Frage zu beantworten:

Da Sie das data-you Attribut des HTML-Tag suchen ändern Sie stattdessen die attr() Methode

So verwenden müssen:

console.log($("#you").attr("data-you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").attr("data-you")); // The data-you attribute has been changed. 
+1

Falls jemand interessiert ist, wurde die Möglichkeit, auf HTML5 'data-' Attribute zuzugreifen, in jQuery Version 1.4.3 hinzugefügt. Zuvor war es nur für internen Datenspeicher mit einem Element verbunden, und wirklich ist es immer noch für interne Datenspeicherung, mit der neuen Funktion, die Sie zunächst einige Daten mit einem HTML5 'Daten-Attribut 'laden können. –

+0

Ihr Code-Snippet ist genau der gleiche wie der in der Frage, außer dass Sie behaupten, dass das Data-You-Attribut geändert wurde. Wenn ich dies tue, wurde das Attribut nicht geändert. Wolltest du den Ausschnitt aus Yaşar İÇLİs Antwort verwenden? – Gerbus

+0

Das Code-Snippet enthält 'attr' anstelle von' data', was im Code der anderen nicht der Fall ist. Bitte schaut euch diese Geige an: http://jsfiddle.net/NneCY/ und beobachtet die Konsolenprotokolle. Danke. –