选择$(this).parent()的下一个同级元素

3

我有一些这样的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被单击时发生的事件上。作为所发生事件的一部分,我想调用下面的.heading img上的show()函数。然而,我无法理解应该如何选择它。

$('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
});

我已经标记了我认为应该处理的行,但是它根本没有显示图片。我已经花费了几个小时研究文档和soflow,但没有成功。

感谢您的任何帮助!


@Tim:@cballou 的例子中哪一个起作用了?是第一个还是第二个? - Roatin Marth
1个回答

13

您只是把几个东西放错了位置,不过非常接近了。

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

这也可以用第二种方式解决:

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

1
不是要否定这个答案,但我认为使用parent()方法很hacky。如果DOM以任何方式发生更改,它很容易就会出问题。话虽如此,使用数据属性和ID字段可能是一种更可靠的方法。 - relipse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接