Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向选定链接的所有级别的父级添加不同的类_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 向选定链接的所有级别的父级添加不同的类

Javascript 向选定链接的所有级别的父级添加不同的类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,下面是我的html <ul> <li> <a href="">Women</a> <ul> <li><a href="">Top</a> <ul> <li><a href="">Short</a></li> <li&g

下面是我的html

<ul>
<li>
    <a href="">Women</a>
    <ul>
        <li><a href="">Top</a>
            <ul>
                <li><a href="">Short</a></li>
                <li><a href="">Lengthy</a>
                    <ul>
                        <li><a class="selected" href="">Child Parent</a></li>
                        <li><a href="">Child Parent</a></li>
                        <li><a href="">Child Parent</a></li>
                        <li><a href="">Child Parent</a></li>
                    </ul>
                </li>
                <li><a href="">Medium</a></li>
                <li><a href="">Full Sleve</a></li>
            </ul>
        </li>
        <li><a href="">Casuals</a></li>
        <li><a href="">Jeans</a></li>
        <li><a href="">Kurthah</a></li>
    </ul>
</li>
<li><a href="">Men</a>
    <ul>
        <li><a href="">Top</a></li>
        <li><a href="">Casuals</a></li>
        <li><a href="">Jeans</a></li>
        <li><a href="">Kurthah</a></li>
    </ul>
</li>
<li><a href="">Children</a></li>
<ul>
这里我选择了一个类作为一个链接。我需要的是,我想将一个类添加到父级li
  • 、它的顶级父级li>
    和它的顶级父级li
  • 所有的家长都应该有不同的班级

    请在这里找到小提琴:

    试试这个:

    $(document).ready(function() {
        $(document).find("a.selected").each(function(){
            $(this).parents("li").each(function(i, v){
                $(v).addClass('newPar' + i);
            });
        });
    });
    
    其中i是索引(0、1、2等,用于不同的类),获取所有父元素,使用参数“li”,它仅检索所有li父元素。

    您可以尝试

    $(document).ready(function() {
    $("a").attr("href", "#"); // kind of disable all links
    $("a").click(function () {
        $("a").removeClass("selected");
        $(this).addClass("selected");
        $(this).parents("a").addClass("selected");
    });
    
    }))


    html的问题在于,
    不是下一个
    ul

    的父母,而是兄弟姐妹,正如我在评论中所说,如果您想添加一个以数字递增的类,您可以使用它(但要删除这些类将很困难)

    $(文档).ready(函数(){
    变量$selected=$('.selected');
    var$parents=$selected.parent().parents('li');
    $parents.children('a').addClass(函数(i){
    返回“父级-”+(i+1)
    });
    });
    
    。已选定{
    颜色:#FF0000;
    }
    .家长-1{
    颜色:#00FF00;
    }
    .家长-2{
    颜色:#0000FF;
    }
    .家长-3{
    颜色:#FF00FF;
    }
    
    
    如果您需要向每个父级添加不同的类,这里还有另一个。但是,此代码可以进行优化

    $(document).ready(function() {
       var curr_parent= $(document).find("a.selected").parent();
       var parent1= $(curr_parent).parent().closest('li');
       $(parent1).addClass('parent1')
       var parent2 = $(parent1).parent().closest('li');
       $(parent2).addClass('parent2')
       var parent3 = $(parent2).parent().closest('li');
       $(parent3).addClass('parent3')
    
    });
    

    要添加的类是什么?它是如何确定的就像active1、active2那样,上面的提琴解决了您的问题?更简单的方法是