我有一个带有嵌套无序列表(ul)的菜单,我有一个包含列表项索引的数组,这些索引是从父索引获得的。但我不能用jQuery将类添加到递归列表项。
例如:
我有一个数组[1,1,0]
,我必须添加类到列表项,其中包含链接My Link 2,Sub Link 2和Deep Menu 1:
<ul>
<li><a href="">My Link 1</a></li>
<li>
<a href="">My Link 2</a>
<ul>
<li><a href="">Sub Link 1</a></li>
<li>
<a href="">Sub Link 2</a>
<ul>
<li><a href="">Deep menu 1</a></li>
<li><a href="">Deep menu 2</a></li>
<li><a href="">Deep menu 3</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">My Link 3</a></li>
</ul>
我希望我能解释一下我的问题。英语不是我的母语,即使用我的母语,我也无法正确解释我的问题。
答案 0 :(得分:0)
据我所知:
var current = $('div.parent'), // parent of master ul
arr = [1, 1, 0],
yourClass = 'myclass';
for (var i = 0; i < arr.length; i++) {
// we add +1 because nth-child is 1,n based, not 0,n
current = current.find('>ul>li:nth-child(' + (arr[i] + 1) + ')');
if (current.length === 0) break;
current.addClass(yourClass);
}
这会将该类添加到<li />
代码中,如果您希望将其设置为<a />
,只需执行current.find('a').addClass('yourClass');
代替current.addClass(yourClass);
。