2009-11-09 109 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