Выбор следующего брата $ (this) .parent () - PullRequest
3 голосов
/ 09 ноября 2009

У меня есть некоторый HTML, который выглядит так:

<div>
  <div class="value">
    <a href="#" class="clicker">Some Value</a>
  </div>
  <div class="heading">
    Some Name<img src="loading.gif" style="visibility:hidden">
  </div>
</div>

Это может повторяться несколько раз, в зависимости от того, сколько значений и заголовков нужно перечислить. Используя jQuery, я прикрепил функцию, которая должна срабатывать при нажатии a.clicker. Как часть того, что происходит, я бы хотел вызвать show () к заголовку .heading ниже. Однако я просто не могу понять, как это должно быть выбрано.

$('a.clicker').live("click", function() {

  // This next line, in my brain, works, but in reality it doesn't!
  $('.heading img', $(this).parent().parent()).show();

  // do some other AJAXy things
});

Я отметил строку, которая, по-моему, должна это сделать, но она вообще не показывает img. Я несколько часов безуспешно изучал документацию и успокаивался.

Спасибо за любую помощь!

1 Ответ

13 голосов
/ 09 ноября 2009

У вас просто есть несколько вещей в неправильных местах. Хотя очень близко.

$('a.clicker').live("click", function() {
    $(this).parent().parent().find('.heading img').show();
});

Это также может быть решено вторым способом:

$('a.clicker').live("click", function() {
    $(this).parent().next('.heading img').show();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...