2010-11-18 45 views
0

您好我有一個HTML片段jQuery的一個問題,而找到一個子元素

<span class="container"> 
    <span class="inner"> 
     <span class="img_class"> 
      <img id=img1" /> 
     </span> 
     <span class="strip"></span> 
     <span class="abc_class"></span> 
    </span> 
</span> 

當用戶點擊位於<span class="abc_class"></span>,我想獲得closest<span class="img_class">然後將其<img /.>的ID

要這樣做,我嘗試

var myId = jQuery($(this).closest('.img_class')).find("img").attr("id"); 

其中$(this)是點擊<span class="abc_class">

myId未定義。爲什麼?

回答

2

您可以只使用.siblings()這裏,像這樣:

var myId = $(this).siblings('.img_class').find("img").attr("id"); 

對於爲什麼?部分:因爲您的標記中沒有.thumb-img ...也無需重新包裝結果,您可以繼續鏈接。

+0

或'.children'(http://api.jquery.com/children/) – 2010-11-18 23:07:58

0

最接近 jQuery函數查找與選擇器匹配的最接近的元素,但只在當前選擇的祖先中尋找。 cf jquery.closest documentation

因此,您不能使用最接近的來找到看起來像兄弟姐妹的東西。

尼克的回答肯定會幫助你解決你的問題。