J'ai deux boutons radio asp sur une page qui sont placés dans un updatepanel
. J'ai écrit un événement de clic pour eux avec jQuery comme ceci:
$(document).ready(function () {
$(".inputs").click(function () {
alert($(this).id);
});
});
Mais cela retourne Undefined. Quel est le problème?
EDIT:
alert(" or " + $(this).attr("id"));
alert(this.id);
Ces deux lignes renvoient null
!
Une autre option (juste pour l'avoir vue):
$(function () {
$(".inputs").click(function (e) {
alert(e.target.id);
});
});
HTH.
$(this)
et this
ne sont pas identiques. Le premier représente un objet jQuery enroulé autour de votre élément. La seconde n'est que votre élément. La propriété id
existe sur l'élément, mais pas l'objet jQuery. En tant que tel, vous avez quelques options:
Accédez directement à la propriété sur l'élément:
this.id
Accédez-y depuis l'objet jQuery:
$(this).attr("id")
Tirez l'objet de jQuery:
$(this).get(0).id; // Or $(this)[0].id
Obtenez le id
à partir de l'objet event
:
Lorsque des événements sont déclenchés, par exemple un événement click, ils contiennent d'importantes informations et références. Dans votre code ci-dessus, vous avez un événement de clic. Cet objet d'événement fait référence à deux éléments: currentTarget
et target
.
En utilisant target
, vous pouvez obtenir le id
de l'élément qui a déclenché l'événement. currentTarget
vous dirait simplement quel élément traversait actuellement l'événement. Ce ne sont pas toujours les mêmes.
$("#button").on("click", function(e){ console.log( e.target.id ) });
Parmi toutes ces solutions, la meilleure option consiste simplement à y accéder directement à partir de this
lui-même, sauf si vous êtes impliqué dans une série d'événements imbriqués. Dans ce cas, il vaut peut-être mieux utiliser l'objet event
. de chaque événement imbriqué (donnez-leur tous les noms uniques) pour référencer des éléments dans des portées supérieures ou inférieures.
Hiya démo http://jsfiddle.net/LYTbc/
c'est une référence à l'élément DOM, vous pouvez donc l'envelopper directement.
attr
api: http://api.jquery.com/attr/
La méthode .attr () obtient la valeur d'attribut uniquement pour le premier élément de l'ensemble mis en correspondance.
avoir une belle, à la vôtre!
code
$(document).ready(function () {
$(".inputs").click(function () {
alert(this.id);
alert(" or " + $(this).attr("id"));
});
});
$(this)
est un objet jQuery qui enveloppe l'élément DOM this
et les objets jQuery n'ont pas de propriétés id
. Vous voulez probablement juste this.id
pour obtenir l'attribut id
de l'élément cliqué.
utiliser cette actiion
$(document).ready(function () {
var a = this.id;
alert (a);
});
this: est l’élément DOM $ (this): Jquery objct, qui est enveloppé avec Dom Element, vous pouvez également vérifier cette réponse this vs $ (this)
essayez comme ça Attr () . Obtenez la valeur d'un attribut pour le premier élément de l'ensemble des éléments correspondants.
$(document).ready(function () {
$(".inputs").click(function () {
alert(" or " + $(this).attr("id"));
});
});