Existe-t-il un moyen d'obtenir l'ID de l'élément qui déclenche un événement?
Je pense à quelque chose comme:
$(document).ready(function() {
$("a").click(function() {
var test = caller.id;
alert(test.val());
});
});
<script type="text/javascript" src="starterkit/jquery.js"></script>
<form class="item" id="aaa">
<input class="title"></input>
</form>
<form class="item" id="bbb">
<input class="title"></input>
</form>
Sauf bien sûr que la var test
doit contenir l'identifiant "aaa"
, si l'événement est déclenché à partir du premier formulaire, et "bbb"
, si l'événement est déclenché à partir du second formulaire.
javascript
jquery
Joda
la source
la source
event.target.id
dans le gestionnaire d'événements pour obtenir l'id de l'élément qui a déclenché un événement.Réponses:
Dans jQuery, se
event.target
réfère toujours à l'élément qui a déclenché l'événement, oùevent
est le paramètre passé à la fonction. http://api.jquery.com/category/events/event-object/Notez également que
this
cela fonctionnera également, mais que ce n'est pas un objet jQuery, donc si vous souhaitez utiliser une fonction jQuery dessus, vous devez vous y référer comme$(this)
, par exemple:la source
$(event.target)
si vous avez besoin d'une méthode jQuery, par exemple$(event.target).attr("organisation:thingy");
.Pour référence, essayez ceci! Ça marche!
la source
$(this).attr("id");
Est-ce que.e.target
vous donnera l'élément exact qui a déclenché l'événement même s'il s'agissait d'un enfant, tandis quethis
vous donnera l'élément auquel l'événement est attaché.Bien que cela soit mentionné dans d'autres articles, je voulais le préciser:
$(event.target).id
n'est pas défini$(event.target)[0].id
donne l'attribut id.event.target.id
donne également l'attribut id.this.id
donne l'attribut id.et
$(this).id
n'est pas défini.Les différences, bien sûr, sont entre les objets jQuery et les objets DOM. "id" est une propriété DOM, vous devez donc être sur l'objet élément DOM pour l'utiliser.
(Ça m'a fait trébucher, donc ça a probablement déclenché quelqu'un d'autre)
la source
event.target.id
ne donne rien!$(event.target).attr('selector');
a parfaitement fonctionné pour moi.Pour tous les événements, pas seulement jQuery, vous pouvez utiliser
En cas d'
event.target
échec, il retombe surevent.srcElement
IE. Pour clarifier le code ci-dessus ne nécessite pas jQuery mais fonctionne également avec jQuery.la source
Vous pouvez utiliser
(this)
pour référencer l'objet qui a déclenché la fonction.'this'
est un élément DOM lorsque vous êtes à l'intérieur d'une fonction de rappel (dans le contexte de jQuery), par exemple, être appelé par les méthodes click, each, bind, etc.Voici où vous pouvez en savoir plus: http://remysharp.com/2007/04/12/jquerys-this-demystified/
la source
$(html).click()
(this) retournera l'objet html et non l'élément cliquéJe génère une table dynamiquement sur une base de données, reçois les données en JSON et les mets dans une table. Chaque ligne de table a un unique
ID
, qui est nécessaire pour d'autres actions, donc, si le DOM est modifié, vous avez besoin d'une approche différente:la source
Élément qui a déclenché l'événement que nous avons dans la propriété de l' événement
Nous obtenons l' objet nœud DOM sur lequel était défini le gestionnaire d'événements.
Le nœud le plus imbriqué qui a commencé le processus de création de bulles que nous avons dans
L'objet événement est toujours le premier attribut du gestionnaire d'événements, par exemple:
En savoir plus sur la délégation d'événements Vous pouvez lire sur http://maciejsikora.com/standard-events-vs-event-delegation/
la source
L'élément source en tant qu'objet jQuery doit être obtenu via
Cela vous donne la source du clic, plutôt que l'élément auquel la fonction de clic a également été affectée. Peut être utile lorsque l'événement de clic se trouve sur un objet parent EG.un événement de clic sur une ligne du tableau et que vous avez besoin de la cellule sur laquelle vous avez cliqué
la source
Vous pouvez essayer d'utiliser:
la source
cela fonctionne avec la plupart des types d'éléments:
la source
Dans le cas des gestionnaires d'événements délégués, où vous pourriez avoir quelque chose comme ceci:
et votre code JS comme ceci:
Vous constaterez très probablement que itemId l'est
undefined
, car le contenu du LI est enveloppé dans un<span>
, ce qui signifie que ce<span>
sera probablement la cible de l'événement. Vous pouvez contourner cela avec un petit chèque, comme ceci:Ou, si vous préférez maximiser la lisibilité (et éviter également la répétition inutile d'appels de jQuery wrapping):
Lorsque vous utilisez la délégation d'événements, la
.is()
méthode est inestimable pour vérifier que votre cible d'événement (entre autres) est réellement ce dont vous avez besoin. Utilisez.closest(selector)
pour rechercher dans l'arborescence DOM et utilisez.find(selector)
(généralement couplé avec.first()
, comme dans.find(selector).first()
) pour le rechercher. Vous n'avez pas besoin de l'utiliser.first()
lors de l'utilisation.closest()
, car il ne renvoie que le premier élément ancêtre correspondant, tandis que.find()
renvoie tous les descendants correspondants.la source
Utiliser peut utiliser l'événement .on
la source
Cela fonctionne sur un
z-index
paramètre supérieur au paramètre d'événement mentionné dans les réponses ci-dessus:De cette façon, vous obtiendrez toujours l' élément de
id
(dans cet exempleli
). Aussi, lorsque vous cliquez sur un élément enfant du parent ..la source
Travailler JSFiddle ici .
la source
Utilisez simplement la
this
référenceou
la source
id
de l'élément sur lequelclick()
a été attribué. Si vous devez transférer plus de données vers cette méthode, vous en avez besoindata-some-id="<?php $someId; ?>"
et vous pouvez alors $ (this) .data ("some-id") pour les récupérer.this.element.attr("id")
fonctionne bien dans IE8.la source
Ces deux travaux,
et
la source
la source
Vous pouvez utiliser la fonction pour obtenir l'id et la valeur de l'élément modifié (dans mon exemple, j'ai utilisé une balise Select.
la source
Je travaille avec
J'ai essayé de chercher un
event
comme décrit ci-dessus, mais lorsque la fonction de demande se déclenche, elle ne semble pas être disponible. J'avais l'habitudethis.element.attr("id")
d'obtenir l'ID de l'élément à la place, et cela semble bien fonctionner.la source
Dans le cas d'Angular 7.x, vous pouvez obtenir l'élément natif et son ID ou ses propriétés.
html:
la source