0

我有一个带有嵌套无序列表 (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>

我希望我能解释我的问题。英语不是我的母语,即使是我的母语,我也无法正确解释我的问题。

4

1 回答 1

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 />,只需执行 acurrent.find('a').addClass('yourClass');而不是current.addClass(yourClass);.

于 2013-09-04T14:10:14.930 回答