J'utilise le plugin jQuery quicksand. J'ai besoin d'obtenir l'ID de données de l'élément cliqué et de le transmettre à un service Web. Comment obtenir l'attribut data-id? J'utilise la .on()
méthode pour lier à nouveau l'événement click pour les éléments triés.
$("#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
la source
la source
on()
méthode telle qu'ellelive()
est désormais déconseillée, et cette question reçoit un certain nombre de visiteurs.Réponses:
Pour obtenir le contenu de l'attribut
data-id
(comme dans<a data-id="123">link</a>
), vous devez utiliserou
.data()
(si vous utilisez une nouvelle jQuery> = 1.4.3)et la partie après
data-
doit être en minuscule, par exempledata-idNum
ne fonctionnera pas, mais ledata-idnum
fera.la source
attr()
car jQuery supprimait les zéros de tête des codes postaux à l'aide dedata()
TFM, "à partir de jQuery 1.4.3 HTML 5, les attributs de données seront automatiquement extraits dans l'objet de données de jQuery. ... Chaque tentative est faite pour convertir la chaîne en une valeur JavaScript (cela inclut les booléens, les nombres, les objets, les tableaux et null). Une valeur n'est convertie en nombre que si cela ne change pas la représentation de la valeur. Par exemple, "1E02" et "100.000" sont équivalents sous forme de nombres (valeur numérique 100), mais leur conversion modifierait leur représentation afin qu'ils soient laissés sous forme de chaînes. "$(this).data().id //returns 123
Si nous voulons récupérer ou mettre à jour ces attributs à l'aide de JavaScript natif existant, nous pouvons le faire en utilisant les méthodes getAttribute et setAttribute comme indiqué ci-dessous:
Via JavaScript
Grâce à jQuery
Lisez cette documentation
la source
Note importante. Gardez à l'esprit que si vous ajustez l'
data-
attribut dynamiquement via JavaScript, il ne sera PAS reflété dans ladata()
fonction jQuery. Vous devez également l'ajuster via ladata()
fonction.js:
la source
Si vous n'êtes pas préoccupé par les anciens navigateurs IE, vous pouvez également utiliser l' API de jeu de données HTML5
HTML
JS
Démo: http://html5demos.com/dataset
Liste complète de prise en charge du navigateur: http://caniuse.com/#feat=dataset
la source
Surpris, personne n'a mentionné:
Voici l'exemple de travail: https://jsfiddle.net/ed5axgvk/1/
la source
HTML
JS
ou
Travaille pour moi!
la source
J'utilise $ .data - http://api.jquery.com/jquery.data/
la source
travaille pour moi!
la source
Accéder à l'attribut de données avec le sien
id
est un peu facile pour moi.$("#Id").data("attribute");
la source
Ce morceau de code renverra la valeur des attributs de données, par exemple: data-id, data-time, data-name etc., je l'ai montré pour l'id
js:
// récupère la valeur du data-id -> a1
// cela changera l'ID de données -> a2
// récupère la valeur du data-id -> a2
la source
en utilisant jQuery:
la source
Pour ceux qui souhaitent supprimer et réactiver dynamiquement l'info-bulle, vous pouvez utiliser les méthodes
dispose
etenable
. Voir https://getbootstrap.com/docs/4.0/components/tooltips/#tooltipdisposela source
J'ai une envergure. Je veux prendre la valeur de l'attribut data-txt-lang, qui est utilisé défini.
la source
Le problème est que vous ne spécifiez pas l'option ou l'option sélectionnée de liste déroulante ou de liste, voici un exemple de liste déroulante, je suppose un enregistrement de données d'attribut de données.
la source