javascript - Find nested order of ul's and add specific classes -
i trying figure out way loop through container
<nav id="container"> <ul> <li>text</li> <li> <ul> <li>text</li> <li> <ul> <!-- , on --> </ul> </li> </ul> <li> </ul> </nav>
and check how deep ul nested in if first 1 add class="level-1"
it, if second .level-2
etc. bear in mind, each <ul>
can contain more 1 nested ul (multi level navigation).
simply iterate through ul
s , create classname based on how many parent ul
s each has, using parentsuntil() in case #container
within ul
.
$(function(){ $('#container ul').each(function(){ var classname = 'level-' + ($(this).parentsuntil('#container', 'ul').length + 1); $(this).addclass(classname); }); });
a shorter way write (courtesy of arun p johny) is
$('#container ul').addclass(function(){ return 'level-' + ($(this).parentsuntil('#container', 'ul').length + 1); });
included css tag. if purely css, can use css. see http://jsfiddle.net/a9jrd8sn/4/
Comments
Post a Comment