Ich verwende das jQuery-Treibsand-Plugin. Ich muss die Daten-ID des angeklickten Elements abrufen und an einen Webservice übergeben. Wie erhalte ich das Daten-ID-Attribut? Ich verwende die .on()
Methode, um das Klickereignis für sortierte Elemente erneut zu binden.
$("#list li").on('click', function() {
// ret = DetailsView.GetProject($(this).attr("#data-id"), OnComplete, OnTimeOut, OnError);
alert($(this).attr("#data-id"));
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<ul id="list" class="grid">
<li data-id="id-40" class="win">
<a id="ctl00_cphBody_ListView1_ctrl0_SelectButton" class="project" href="#">
<img src="themes/clean/images/win.jpg" class="project-image" alt="get data-id" />
</a>
</li>
</ul>
javascript
jquery
custom-data-attribute
Bruce Adams
quelle
quelle
on()
Methode zu verwenden, dielive()
jetzt veraltet ist, und diese Frage wird von einigen Besuchern besucht.Antworten:
Um den Inhalt des Attributs
data-id
(wie in<a data-id="123">link</a>
) zu erhalten, müssen Sie verwendenoder
.data()
(wenn Sie eine neuere jQuery> = 1.4.3 verwenden)und der Teil danach
data-
muss klein geschrieben sein, zBdata-idNum
wird nicht funktionieren, aberdata-idnum
wird.quelle
attr()
weil jQuery führende Nullen von Postleitzahlen entferntdata()
hat. TFM sagt: "Ab jQuery 1.4.3 werden HTML 5-Datenattribute automatisch in das Datenobjekt von jQuery gezogen. ... Es wird versucht, die Zeichenfolge zu konvertieren auf einen JavaScript-Wert (dies schließt Boolesche Werte, Zahlen, Objekte, Arrays und Null ein). Ein Wert wird nur dann in eine Zahl konvertiert, wenn dadurch die Darstellung des Werts nicht geändert wird. Beispielsweise sind "1E02" und "100.000" äquivalent als Zahlen (numerischer Wert 100), aber wenn sie konvertiert werden, ändert sich ihre Darstellung, sodass sie als Zeichenfolgen verbleiben. "$(this).data().id //returns 123
Wenn wir diese Attribute mit vorhandenem, nativem JavaScript abrufen oder aktualisieren möchten, können wir dies mit den Methoden getAttribute und setAttribute wie folgt tun:
Durch JavaScript
Durch jQuery
Lesen Sie diese Dokumentation
quelle
Wichtige Notiz. Beachten Sie, dass das
data-
Attribut , wenn Sie es dynamisch über JavaScript anpassen, NICHT in derdata()
jQuery-Funktion wiedergegeben wird. Sie müssen es auch über diedata()
Funktion einstellen .js:
quelle
Wenn Sie sich keine Gedanken über alte IE-Browser machen, können Sie auch die HTML5-Dataset-API verwenden
HTML
JS
Demo: http://html5demos.com/dataset
Vollständige Browser-Support-Liste: http://caniuse.com/#feat=dataset
quelle
Überrascht erwähnte niemand:
Hier ist das Arbeitsbeispiel: https://jsfiddle.net/ed5axgvk/1/
quelle
HTML
JS
oder
Funktioniert bei mir!
quelle
Ich benutze $ .data - http://api.jquery.com/jquery.data/
quelle
funktioniert bei mir!
quelle
Der Zugriff auf eigene Datenattribute
id
ist für mich etwas einfach.$("#Id").data("attribute");
quelle
Dieser Code gibt den Wert der Datenattribute zurück, z. B. Daten-ID, Datenzeit, Datenname usw., die ich für die ID angezeigt habe
js:
// erhalte den Wert der Daten-ID -> a1
// dies ändert die Daten-ID -> a2
// erhalte den Wert der Daten-ID -> a2
quelle
Verwenden von jQuery:
quelle
Für diejenigen, die den Tooltip dynamisch entfernen und wieder aktivieren möchten, können Sie die Methoden
dispose
undenable
verwenden. Siehe https://getbootstrap.com/docs/4.0/components/tooltips/#tooltipdisposequelle
Ich habe eine Spanne. Ich möchte den Wert des Attributs data-txt-lang nehmen, das definiert verwendet wird.
quelle
Das Problem ist, dass Sie die Option oder ausgewählte Option für Dropdown oder Liste nicht angeben. Hier ist ein Beispiel für Dropdown, ich gehe von einem Datenattribut-Datensatz aus.
quelle