2010-04-16 4 views
2

У меня есть 2 якоря тегиJQuery: как получить идентификатор тега привязки

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

Я следующий JQuery:

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

Что происходит: Я всегда получаю "Tab1" в всплывал

Что мне нужно: , когда пользователь нажимает на якорь тег, его идентификатор должен отображаться во всплывающем

ответ

9

Ваша проблема кроется в заявлении о предупреждении: с $('a') вы не ссылаетесь на выбранный элемент <a> в инструкции оповещения: вы извлекаете первый элемент в документе.

Вместо того, чтобы ссылаться на щелкнул элемент, заменить $('a') с $(this):

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

спасибо за быстрый ответ я получаю сообщение об ошибке, как Сообщение: Объект не поддерживает это свойство или метод Line: 57 Char: 17 Код: 0 Если я заменяю this.attr («id») с этой ошибкой, но всплывающее окно показывает полный url http: // sever/folder/# tab1 – balalakshmi

+1

@balalakshmi: ОК, похоже, jQuery нравится '$ (this)' а не простой JavaScript 'this'. Работает ли он, если вы вместо этого используете '$ (this)' (см. Мой обновленный фрагмент кода)? –

+0

+1 за потраченное время, чтобы объяснить, почему исходный код не работает. –

4

Попробуйте

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

Вы можете получить любой атрибут элемента с помощью Attr() так:

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

Если вам нужен только доступ к id, то использование jQuery - unne cessary накладные расходы:

$('a').click(function(event) { 
    alert(this.id); 
}); 
Смежные вопросы