2011-04-11 61 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();