2014-02-09 6 views
1

각 ul에 대해 깊이 설정해야합니다. 나는jquery를 사용하여 요소를 빌드하십시오.

$('.topnav').find('ul').each(function(){ 
    $(this).attr('deep', $(this).index()); 
}) 

HTML

<ul class="topnav dropdown" > 
    <li class="expand"> 
     <a href="/posluhy">Top</a> 
     <ul class="subnav"> 
      <li class="expand"> 
       <a href="/posluhy/metalocherepycja">Sub cat 1</a> 
       <ul class="subnav"> 
        <li > 
         <a href="/posluhy/metalocherepycja/dsafsadf">Sub Sub cat 1</a> 
        </li> 
       </ul> 
      </li> 
      <li class="expand"> 
       <a href="/posluhy/metalocherepycja">Sub cat 2</a> 
       <ul class="subnav"> 
        <li > 
         <a href="/posluhy/metalocherepycja/dsafsadf">Sub Sub cat 2</a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

할 수 있지만 각 UL에 대한 깊은 =의 '1'을합니다. 뭔가를 사고 싶습니다

1 
    2 
1 
    2 

jquery로 가능합니까? 피들은 여기에 있습니다 http://jsfiddle.net/GLjZt/1/

+0

사용'데이터 - *이'대신 사용되지 않는 사용자 지정 특성의 속성. –

답변

2

색인은 요소가 주어진 요소 집합 내에있는 위치 만 알려주므로 원하는 것을 제공하지 않습니다. $(this).index()는 항상 0을 반환합니다 당신은 ul 's의 부모에 따라 깊이를 계산해야합니다

$('.topnav').find('ul').each(function(){ 
    $(this).attr('deep', $(this).parents('ul').length);//set attr deep 
}) 
+0

작동하지 않는 http://jsfiddle.net/GLjZt/2/, 깊이 설정되지 않음 –

관련 문제