Comment obtenir l’identifiant du clic cliqué sur jquery

J’ai essayé d’obtenir l’identifiant d’un div cliqué des mêmes classes mais avec des identifiants différents . J’ai essayé tout ce que je sais.

Voici un code que j’ai essayé (dans celui-ci, la .click function() ne fonctionne pas .. edit: ce qui signifie qu’il ne semble pas exécuter le code lorsque l’utilisateur clique dessus!): –

 $(".u_search").click(function() { var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + $(".u_search").attr('id'); alert(dataSsortingng); $.ajax({ type: "POST", url: '/script/profile.php', data: dataSsortingng, cache: false, success: function(data) { $('#ui_profile').show(); $('#ui_profile').html(data); location.hash = 'profile' + 'id=' + dataSsortingng; $(".searchbox").val(''); $("#usr_suggest").hide(); } }); }); 

PHP: –

 echo "" . $fname_ . " " . $lname_ . ""; }} 

Voici une autre combinaison de codes que j’ai essayée ( erreur dans celle-ci : supposons que j’ai 5 divs , et même si j’ai cliqué sur la 2ème div ou la 3ème div, il ne capture que l’id de la première div [ div 1] et non le clic Je veux être capable de capturer l’id du div cliqué ): –

 $(".u_search").click(function() { var attr_u_search = $(".u_search").attr('id'); var dataSsortingng = '&u_search=' + $(".u_search").attr('id'); alert(dataSsortingng); $.ajax({ type: "POST", url: '/script/profile.php', data: dataSsortingng, cache: false, success: function(data) { $('#ui_profile').show(); $('#ui_profile').html(data); location.hash = 'profile' + 'id=' + dataSsortingng; $(".searchbox").val(''); $("#usr_suggest").hide(); } }); }); 

PHP: –

 echo "" . $fname_ . " " . $lname_ . ""; }} 

edit: quand j’utilise le premier code (celui avec .click function() ), le code ne semble pas fonctionner du tout! .. J’utilise jQuery version 1.9.1

Dans votre changement de fonction

 $('.u_search').attr('id') 

À

 $(this).attr('id') 

Les citations sont importantes, mais ce ne sont pas des guillemets;)

Quand tu fais

 $(".u_search").click(function() {... 

votre fonction de rappel a maintenant un object appelé this . Vous pouvez l’utiliser pour obtenir l’object réel sur lequel vous avez cliqué. Donc, dans ce cas, si vous voulez obtenir l’ID de l’object cliqué, procédez comme suit:

 var the_id = $(this).attr("id"); 

Dans une fonction, vous pouvez faire référence à l’object jquery actif en utilisant $ (this)

 $(".u_search").click(function() { ... //get ID of button being clicked upon //Jquery Solution $(this).attr('id'); //Or Javascript this.id; ... } 
  $("div").on("click",function(){ var id = this.id; //returns id }); 
 var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + $(".u_search").attr('id'); 

Vous sélectionnez à nouveau chaque div de u_search pour construire votre datassortingng, au lieu d’utiliser l’id déjà récupéré:

 var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + attr_u_search; 

Je pense que c’est: $(this).attr('id') Vous devez utiliser $ (this) pour que l’object qui a cliqué ..

 var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + attr_u_search; // it's better ! 

Essaye ça :

 $('body').on('click', '.u_search', function() { var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + attr_u_search; alert(dataSsortingng); // REST OF CODE }); 

(Testé et fonctionnel, si cela ne fonctionne toujours pas, le problème pourrait être ailleurs)

 $('body').delegate('.u_search', 'click', function() { var attr_u_search = $(this).attr('id'); var dataSsortingng = '&u_search=' + attr_u_search; alert(dataSsortingng); });