JQuery дочерний элемент щелкающего элемента - PullRequest
14 голосов
/ 11 декабря 2008

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

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

$("ul li").click(function(event){
  $("input").val($(this).html());             
});
<ul>
    <li><a href="http://www.google.com" id="google">Google</a>
</ul>

Ответы [ 3 ]

44 голосов
/ 11 декабря 2008

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

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

сделает это (исправьте a: первый селектор, если это не то, что вы имели в виду)

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

4 голосов
/ 11 декабря 2008

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

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

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

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

Теперь вы можете делать все, что пожелаете, с этой переменной:)

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

2 голосов
/ 11 декабря 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...