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); });