Der Datenattributwert kann nicht aktualisiert werden
Zwar gibt es einige Beispiele dazu auf der web, es nicht richtig zu funktionieren scheint. Ich kann nicht herausfinden, das problem.
Habe ich diese einfache html -
<div id="foo" data-num="0"></div>
<a href="#" id="changeData">change data value</a>
Jedes mal, wenn ich auf den link "Daten ändern Wert" möchte ich die Daten aktualisieren, die dem Wert der Daten-num.
Zum Beispiel brauche ich es 1,2,3,4,... (plus 1 jedes mal, wenn ich auf den link klicken)
was ich habe, ist
var num = $('#foo').data("num");
console.log(num);
num = num+1;
console.log(num);
$('#foo').attr('data-num', num);
Ändert sich der Wert einer Zeit von 0 zu 1 zu jeder Zeit. Ich kann es nicht inkrementell. Irgendwelche Vorschläge, was ich falsch mache?
InformationsquelleAutor der Frage dev | 2013-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
EDIT: die Antwort einfach unten die gute one.
Dass Sie nicht mit der Daten-Methode richtig. Der richtige code um die Daten zu aktualisieren ist:
Also dein Beispiel wäre:
InformationsquelleAutor der Antwort Lucas Willems
Verwenden, statt, wenn Sie möchten, ändern Sie das Attribut data-num-Knoten-element, nicht der Daten-Objekt:
DEMO
PS: aber man sollte die data () - Objekt in praktisch allen Fällen, aber nicht alle...
InformationsquelleAutor der Antwort A. Wolff
Wenn wir wollten, abzurufen oder zu aktualisieren, diese Attribute über die vorhandene, native JavaScriptdann können wir das so machen mit der
getAttribute
undsetAttribute
Methoden wie unten gezeigt:JavaScript
Durch jQuery
Lesen Sie diese Dokumentation für vanilla js oder diese Dokumentation für jquery
InformationsquelleAutor der Antwort Lalit Kumar
Für mich, mit Jquery lib 2.1.1 das folgende funktioniert NICHT so wie ich erwartet hatte:
Set-element Daten-Attribut-Wert:
ABER das element selbst bleibt ohne das Attribut:
Brauchte ich das DOM aktualisiert, so konnte ich später tun
$('.meine-Klasse[data-num="myValue"]') //aktuelle Länge ist 0
So, ich hatte zu tun,
Um die DOM-update:
Ob das Attribut vorhanden ist oder nicht $.attr überschreiben.
InformationsquelleAutor der Antwort Brian Ogden
Hatte ähnliches problem und am Ende hatte ich beide
und
Und nach dieser
Hoffe, das hilft.
InformationsquelleAutor der Antwort Kristian Kurgjärv
Diese Antwort ist für diejenigen, die zu ändern Sie einfach den Wert des data-Attributs
Dem vorgeschlagen wird, nicht ändern Sie den Wert Ihres Jquery data-attr korrekt als @adeneo angegeben hat. Aus irgendeinem Grund, obwohl, ich bin nicht zu sehen, ihn (oder andere) post die richtige Methode für diejenigen, die Ihre Daten aktualisieren-attr. Die Antwort, die @Lucas Willems gepostet hat, kann die Antwort auf ein problem Brian Tompsett - 汤莱恩 habe, aber es ist nicht die Antwort auf die Anfrage, vielleicht bringen andere user hier.
Schnelle Antwort in Bezug auf die ursprüngliche Anfrage-Anweisung
-Daten zu aktualisieren-attr
Einfach Fehler* - es muss "Daten" am Anfang des Attributs, das Sie suchen, um den Wert zu ändern.
InformationsquelleAutor der Antwort MattOlivos
Hatte ein ähnliches problem, ich schlage vor, diese Lösung, obwohl, ist nicht unterstützt in IE 10 und unter.
Gegeben
Den Javascript-standard definiert eine Eigenschaft namens " dataset zum aktualisieren von Daten-Beispiel-update.
Hinweis: verwenden camel-case-notation, um auf die korrekte Daten-Attribut.
Quelle: https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes
InformationsquelleAutor der Antwort Giovanni Romio