2010-04-16 6 views
2

J'ai 2 balises d'ancragejquery: comment obtenir l'identifiant de balise d'ancrage

<li><a id="tab1" href="#tabs-1">Issue</a></li> 
<li><a id="tab2" href="#tabs-2">Change Request</a></li> 

Je le jquery suivant:

$('a').click(function(event) { 
           alert($('a').attr("id")); 
      }); 

Qu'est-ce qui se passe: Je reçois toujours "tab1" dans la pop up

Ce que je dois: lorsque l'utilisateur clique sur une balise d'ancrage, son identifiant doit être affiché dans le menu déroulant

Répondre

9

Votre problème réside dans l'instruction d'alerte: avec $('a'), vous ne référencez pas l'élément <a> cliqué dans l'instruction d'alerte: vous récupérez le premier élément <a> dans le document.

Au lieu de cela, pour faire référence à l'élément cliqué, remplacez $('a') avec $(this):

$('a').click(function(event) { 
    alert($(this).attr("id")); 
}); 
+0

merci pour la réponse rapide je reçois une erreur comme Message: Cet objet ne gère pas cette propriété ou méthode Ligne: 57 Char: 17 code: 0 Si je remplace this.attr ("id") avec cela l'erreur se déclenche mais le popup affiche l'URL complète http: // sever/folder/# tab1 – balalakshmi

+1

@balalakshmi: OK, il semble que jQuery aime '$ (this)' plutôt que le JavaScript simple 'this'. Cela fonctionne-t-il si vous utilisez '$ (this)' à la place (voir mon extrait de code mis à jour)? –

+0

+1 pour le temps passé à expliquer pourquoi le code d'origine ne fonctionne pas. –

4

Essayez

$('a').click(function(event) { 
    var currentElemID = $(this).attr("id") // or you can use this.id 
}); 
0

Vous pouvez obtenir de sorte que tout attribut d'élément en utilisant attr():

$('a').attr('id'); 
0

Si vous avez seulement besoin d'accéder à l'identifiant, alors utiliser jQuery est un unne frais généraux cessary: ​​

$('a').click(function(event) { 
    alert(this.id); 
}); 
Questions connexes