jquery查找具有特定类的li并添加另一个类

jquery查找具有特定类的li并添加另一个类,jquery,class,find,Jquery,Class,Find,我不知道如何循环一个ul,如果li有class='parent' 我总是在我的新课上得到每一个李 这是密码 $('.navigation').find('li').each(function() { if($(this).hasClass('parent')) { $(this).find('li').each(function() { $(this).addClass("nivel_1");

我不知道如何循环一个ul,如果li有class='parent'

我总是在我的新课上得到每一个李

这是密码

$('.navigation').find('li').each(function() {
        if($(this).hasClass('parent')) {
            $(this).find('li').each(function() {
                $(this).addClass("nivel_1");
                $(this).css('display', 'none');
                if($(".nivel_1").hasClass('parent')) {
                    $(".nivel_1").find('li').each(function() {
                        $(this).addClass("nivel_2");
                        $(this).css('display', 'none');
                    });
                }
            });
        }
    });
这就是我得到的

我该怎么办

谢谢


Pluda

你真的不需要做循环。不过,老实说,您的代码似乎比问题的描述复杂得多,所以这可能太简单了

$('li.parent').addClass("nivel_1");

因此,您有一个树状视图,其中包含列表的视图有一个名为parent的类

我还没有对此进行测试(我不知道jQuery是否有内置的功能),但您可以尝试以下方法:

$(document).ready(function(){
    $('.navigation').find('li.parent > ul > li').addClass('nivel_X');
    $('.nivel_X').each(function(){
        var level = $(this).parents('.parent').size();
        $(this).removeClass('nivel_X').addClass('nivel_'+level);
    });
});
我们的想法是,您将使用“parent”类向li的每个直接子级添加一个类,然后将该类命名为nivel_X,其中X由它在上面找到的父级数替换

以下代码也很有效,我更喜欢它:

$('.navigation').find('li.parent > ul > li').addClass(function() {
    return 'nivel_'+$(this).parents('.parent').size();
});

我也这么想,但如果你注意到他的第二关是增加nivel_2而不是nivel_1。。。所以我想他需要一个电话,在nivellol的末尾添加正确的深度级别,呵呵。。。有时候我觉得自己很愚蠢。。。只是另一个帮助,如果我的nivel_1也有li.parent,我如何向每个添加nivel_2?我正试着用子项来制作一个男人。谢谢@Gazillion,是的,这正是我想要实现的。你能给出一个你想要实现的HTML的例子吗,类似于上面的屏幕截图?对不起,还没有在线,它在我的本地主机joomla中。谢谢你的快速回复。那里有一些拼写错误,我把它从一行改成了一个循环,但是它可以工作(测试了)。太好了,非常感谢,我的代码和这个相比真的很糟糕。parent>ul>li与“在父类中搜索ul中的所有li,对吗?这是我经常丢失的东西:-)非常感谢。”parent>ul>li“是指UL必须是父母的直系后裔,LI必须是UL的直系后裔。例如,如果父级中有一个DIV,而父级中有一个UL,那么该选择器将不会捕获该DIV。我没有注意到这一点,但我可能会检查X的值,而不是删除它并在循环中执行。我会让代码保持原样,因为它可以工作,但我只是想插话。