代码之家  ›  专栏  ›  技术社区  ›  Tim Sullivan

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

  •  3
  • Tim Sullivan  · 技术社区  · 15 年前

    我有一些像这样的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
    });
    

    我已经标记了我认为应该做的行,但它根本没有显示img。我已经仔细研究了文档和Soflow几个小时,但没有成功。

    感谢您的帮助!

    1 回复  |  直到 13 年前
        1
  •  13
  •   Corey Ballou    15 年前

    你只是把一些东西放错地方了。不过非常接近。

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

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

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