2009-11-09 73 views
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 
}); 

我,标志着我认为应该做这行,但它没有显示在所有的IMG。我一直在仔细阅读文档,并花了几个小时没有成功。

感谢您的帮助!

+0

@Tim:工作的@ cballou的例子是哪一个?第一个还是第二个? –

回答

12

你只是在错误的地方有一些东西。虽然非常接近。

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

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

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

不要敲这个答案或任何东西,但我发现使用父母()很hacky。如果dom以任何方式改变,它很容易就会中断。话虽如此,诉诸使用数据属性和ID字段可能是一个更确定的方式。 – relipse