2008-12-11 4 views
14

У меня есть список ссылок, к которым прикреплено событие щелчка, мне нужно получить идентификатор от дочерней ссылки. Итак, в приведенном ниже примере, если бы я нажал на первый элемент списка, мне нужно было бы переустановить Google.jQuery дочерний элемент с щелчком

Я пробовал '$this a', но не могу полностью выработать синтаксис.

jQuery: 

$("ul li").click(function(event){ 
$("input").val($(this).html());   
    } 
); 



html: 
<ul> 
    <li><a href="http://www.google.com" id="google">Google</a> 
</ul> 

ответ

40

Я не вижу образец HTML, но

$(this).find('a:first').attr('id') 

бы сделать это (исправить : Во-первых селектор, если это не то, что вы имели в виду)

это см элемент, который произвел ваше событие

+0

Я был просто слеп :) – smoothdeveloper 2008-12-11 13:54:45

+0

Спасибо любезно :) – Tom 2008-12-11 14:02:04

+0

Да, это, безусловно, Это. – 2008-12-11 14:23:48

1

Вы можете использовать метод children:

$(this).children('a').eq(0).attr('id'); 

Я не уверен в синтаксисе, но что-то подобное должно работать.

4

Чтобы сделать код немного аккуратнее, позволяет связать триггеры с функциями, как так: (я предлагаю вам свой UL идентификатор, так что специфична только элементы в этом UL)

$('ul li').bind('click', getAnchorId); 

функция который называется (getAnchorId), получает атрибут ID дочернего элемента (a) элемента clicked (ul li) и применяет его к переменной (anchorId), и чтобы показать его получение правильной информации, я положил результат в предупреждение ,

function getAnchorId() { 
    var anchorId = $(this).children('a').attr('id'); 
    alert(anchorId); 
} 

Теперь и может делать то, что когда-нибудь у хочу с этой переменной :)

надеюсь, что это помогает :)