2011-04-11 118 views
0

我有一些HTML標記,看起來像這樣,jQuery的幫助,next()函數

 </a> 
     <nav> 
      <ul> 
       <li><a href=""><img src="/media/icons/view.jpg" alt="Views"/> 210</a></li> 
       <li><a href=""><img src="/media/icons/like.jpg" alt="Likes"/> 45</a></li> 
       <li class="jobs"><a href="">52 New Jobs</a></li> 
      </ul> 
     </nav> 
     <ul class="job_listings"> 
      <li><a href="">Outbound Telesales Assistant &gt;</a></li> 
      <li><a href="">Business Development Manager &gt;</a></li> 
     </ul 
    </li> 

.job_listings是隱藏在DOM準備,並且需要以顯示點擊li.jobs a的時候,我已經試圖與以下,jQuery的:

$('#jobwall .jobs a').click(function(){ 
       $(this).next('.job_listing').show(); 
       return false; 
      }); 
+0

當你嘗試過什麼事?你希望會發生什麼,爲什麼? – 2011-04-11 13:58:34

回答

5

你應該得到的導航元素,而不是錨的下一個元素,也是你米西在.job_listing選擇器中。

試試這個:

$('#jobwall .jobs a').click(function(){     
    $(this).closest("nav").next('.job_listings').show();     
    return false;    
}); 
+0

+10。正是我打算輸入的內容! – 2011-04-11 14:01:32

+0

不需要將NAV和.job_listings元素作爲兄弟進行硬編碼。我的解決方案更加靈活。 – 2011-04-11 14:25:12

+0

@Sime:如果只有一個可容納作業列表的容器,我們不需要任何導航,它可以像$(「#jobListings」)。show()一樣簡單。但是,如果它在重複列表中,那麼我們不能使用id,因爲id應該跨HML元素唯一。 – Chandu 2011-04-11 14:31:12

0

在這裏你去:

$(this).closest('#commonContainer').find('.job_listings').show();