2012-07-26 1 views
1

나는 (그런데 메뉴입니다) 다음 목록 구조를 가지고 :jQuery .not()을 사용하여 현재 수준에서만 첫 번째 자식을 선택하는 방법은 무엇입니까?

나는 그것이 페이지의 헤더를 표시되도록 첫 번째 <li>click() 이벤트 리스너를 첨부 할
<div id="mainmenu"> 
    <ul class="menu"> 
     <li class="item-435"> 
     <li class="item-468 active deeper parent"> 
      <a href="#">News</a> 
      <ul> 
       <li class="item-469 current active"> 
        <a href="/index.php/news/news-topaktuell">Topaktuell</a> 
       </li> 
       <li class="item-480"> 
        <a href="/index.php/news/events">Events</a> 
       </li> 
      </ul> 
     </li> 
     <li class="item-476"> 
     <li class="item-477"> 
     <li class="item-478"> 
     <li class="item-479"> 
    </ul> 
</div> 

. 다른 <li> 태그도 청취자가 click()이어야하지만이 이벤트의 경우 헤더가 숨겨져 있어야합니다. 헤더는 기본적으로 표시되므로 머리글은 홈 페이지 (첫 번째 하위)에만 표시되어야합니다.

이미 무슨 짓을 :

$('#mainmenu .menu li:not(:first-child)').click(function() { 
    //hide header 
}); 

$('#mainmenu .menu li:first-child').click(function() { 
    //show header 
}); 

그러나 이것은 내가 원하지 않는, 너무 하위 목록에서 첫 번째 자식을 선택합니다. 원하는 태그 만 선택하는 우아한 방법이 있습니까?

+0

당신은'$ ('mainmenu .menu'). children ('li : first-child')'를 시도 할 수 있습니다. 아이들은 직접적인 자손들 가운데서 만 선택을하고 더 깊이 잠수하지 않습니다. – Tallmaris

답변

2

는 희망이 당신이 달성하려고하는 것입니다

$('#mainmenu .menu > li:not(:first-child)').click(function() { 
    //hide header 
}); 

$('#mainmenu .menu > li:first-child').click(function() { 
    //show header 
}); 
+0

그것은 단지 : 처음? 또는 둘 다 받아 들여질 수 있습니까? – Andre

+0

@Andre 당신 말이 맞습니다. 이 경우 : 먼저 더 이해할 수 있습니다. – simoncereska

0

를 시도? 당신이 LI 클릭하면

http://jsfiddle.net/gRoberts/myVs9/

는 기본적으로, UL 당신이 볼 수 클릭 텍스트를 유지하는 동안,/숨기기를 보여, 내 포함합니다.

희망 하시겠습니까?

관련 문제