$('div').data('info', 1);
alert($('div').data('info'));
//this works
$('div[data-info="1"]').text('222');
//but this don't work
Ich erstelle ein Element in jquery. Danach möchte ich das Attribut "Daten" hinzufügen. Er ist wie und wird hinzugefügt, aber im DOM ist dies nicht ersichtlich und ich kann den Gegenstand nicht mit bekommen
$('div[data-example="example"]').html()
jquery
html
custom-data-attribute
Luntegg
quelle
quelle
.data()
Sie, es sei denn, Sie haben tatsächlich einen Grund zur Verwendung.attr()
..data()
arbeite nicht Es fügt DOM kein.data(key, val)
würde das attr erstellen. weiß jemand warum es nicht?Note that this doesn't create an actual data-info attribute. If you need to create the attribute, use .attr():
Dies war der Schlüssel zu meinem Problem. Vielen Dank..data () von jQuery führt einige Aktionen aus, fügt die Daten jedoch nicht als Attribut zum DOM hinzu. Wenn Sie damit ein Datenattribut abrufen, erstellen Sie zunächst ein jQuery-Datenobjekt und setzen den Wert des Objekts auf das Datenattribut. Danach ist es im Wesentlichen vom Datenattribut entkoppelt.
Beispiel:
Wenn Sie den Wert des Attributs mit abrufen
.data('foo')
, wird erwartungsgemäß "bar" zurückgegeben. Wenn Sie dann das Attribut mit ändern.attr('data-foo', 'blah')
und später verwenden.data('foo')
, um den Wert abzurufen, wird "bar" zurückgegeben, obwohl das DOM dies sagtdata-foo="blah"
. Wenn Sie.data()
den Wert festlegen, wird der Wert im jQuery-Objekt geändert, nicht jedoch im DOM.Grundsätzlich
.data()
dient zum Festlegen oder Überprüfen des Datenwerts des jQuery-Objekts. Wenn Sie es überprüfen und es noch nicht vorhanden ist, wird der Wert basierend auf dem Datenattribut im DOM erstellt..attr()
dient zum Festlegen oder Überprüfen des Attributwerts des DOM-Elements und berührt den jQuery-Datenwert nicht. Wenn Sie beide zum Ändern benötigen, sollten Sie beide.data()
und verwenden.attr()
. Ansonsten bleib bei dem einen oder anderen.quelle
In JQuery werden " Daten " standardmäßig nicht aktualisiert :
Sie würden stattdessen " attr " für das Live-Update verwenden:
quelle
quelle
Mit using
.data()
werden nur Daten zum jQuery-Objekt für dieses Element hinzugefügt. Um die Informationen zum Element selbst hinzuzufügen, müssen Sie mit jQuery's.attr
oder native auf dieses Element zugreifen.setAttribute
Um auf ein Element mit dem Attributsatz zuzugreifen , können Sie einfach basierend auf diesem Attribut auswählen, wie Sie in Ihrem Beitrag (
$('div[data-info="1"]')
) vermerken , aber wenn Sie es verwenden.data()
, können Sie es nicht. Um basierend auf der.data()
Einstellung auszuwählen , müssten Sie die Filterfunktion von jQuery verwenden.jsFiddle Demo
quelle
um den Text von a
quelle