2010-10-15 26 views
1

Je rencontrais des liens comme:Comment collecter des informations à partir de l'URL de navigation et du lien d'ancrage à l'aide de jquery?

<asp:HyperLink ID="lnkTitle" runat="server" CssClass="itemTitle" > 
           </asp:HyperLink> 
<a id="linkOwner" runat="server" class="authorName"></a> 

Je déléguant l'NavigateUrl de code sous-jacent au moment de l'exécution comme:

lnkTitle.NavigateUrl = "MyPage.aspx?id=" + userID; 

linkOwner.HRef= "MyPage.aspx?id=" + userID; 

(où userID est une variable de type entier) J'ai besoin d'accéder à l'ID valeur de l'URL de navigation dans le fichier js pour les deux cas. Comment y accéder en utilisant jquery? Quelqu'un peut-il m'aider?

Répondre

0

Deux options possibles

  • En jQuery, obtenir l'attribut href du lien généré et extraire le userId à partir de là: le code-behind vous tapez entraînera la génération de quelque chose comme

<a href="MyPage.aspx?id=1234" id="SomeCrazyIDGeneratedByASP.NET">text of the link</a>

le problème ici, est que l'ID du lien généré peut varier ... qui fait le lien dur er à trouver dans la page en utilisant un sélecteur jQuery. Je suggère d'ajouter une classe CSS spécifique à vos liens, par exemple user-page. Ensuite, vous pouvez faire quelque chose comme ça, je suppose:

/*extract the href attribute from the link, and get the item after the last "=" sign*/ 
var href = $('a.user-page').attr('href'); 
var split = href.split("="); 
/*reverse it and take the first item (used to be last)*/ 
var userId = split.reverse()[0]; 
alert(userId); 
  • L'autre option que je préfère habituellement est une variable exposer côté serveur tels que userId directement en Javascript ... Pour faire cela, vous devez rendre visible userId à partir du fichier .aspx. Ensuite, dans votre fichier .aspx, faire quelque chose comme ça

    <script type="text/javascript"> var userId = <%=userId%>; alert(userId); </script>

Ensuite, vous pouvez l'utiliser comme une variable javascript!

1

Vous pouvez utiliser le sélecteur en fonction de id similaire à CSS comme ceci:

$('#lnkTitle') 
$('#linkOwner') 

See jQuery ID Selector for more info

Si vous souhaitez obtenir la valeur id, vous pouvez utiliser la méthode attr:

$('#container a').each(function(){ 
    alert($(this).attr('id')); 
}); 

La méthode each est utilisée pour effectuer une boucle sur l'ensemble enveloppé (ce que vous avez spécifié dans le sélecteur). Notez que container est supposé être l'identifiant de l'élément contenant vos liens.

+0

Je ne suis pas sûr que c'est ce que demande ANP ... il parle de certaines données passées dans le 'href' d'un lien, pas le' id 'de l'élément ... Je vais essayer! – tsimbalar

+0

@tsimbalar: J'ai posté ce que je pouvais comprendre et vous pourriez avoir raison; Voyons voir ce que OP est :) – Sarfraz