Как собрать информацию с помощью навигационной ссылки и ссылки, используя jquery? - PullRequest
1 голос
/ 15 октября 2010

У меня есть ссылки вроде:

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

Я присваиваю NavigateUrl из кода во время выполнения, например:

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

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

(где userID - переменная целочисленного типа) Iнеобходимо получить доступ к значению идентификатора из URL-адреса навигации в js-файле для обоих случаев.Как получить доступ к нему с помощью jquery? Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Вы можете использовать селектор на основе идентификатора, похожего на CSS, например:

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

См. JQuery ID Selector для получения дополнительной информации

Если вы хотите получить значение id, вы можете использовать метод attr:

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

Метод each используется для циклического перебора обернутого набора (что вы указали в селекторе). Обратите внимание, что container считается идентификатором элемента, содержащего ваши ссылки.

0 голосов
/ 15 октября 2010

Два возможных варианта

  • В jQuery получите атрибут href сгенерированной ссылки и извлеките оттуда userId : код, который вы вводите, приведет к генерации чего-то вроде

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

проблема здесь в том, что идентификатор сгенерированной ссылки может различаться ... что затрудняет поиск ссылки на странице с помощью селектора jQuery. Я бы предложил добавить к вашим ссылкам определенный класс CSS, например user-page. Тогда вы могли бы сделать что-то вроде этого, я полагаю:

/*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);
  • Другой вариант, который я обычно предпочитаю, это выставить переменную на стороне сервера, такую ​​как userId, непосредственно в Javascript ... Чтобы сделать это, вы должны сделать userId видимым из файла .aspx. Затем в вашем .aspx файле сделайте что-то подобное

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

Тогда вы можете использовать его как любую переменную javascript!

...