仅在父li上添加活动

时间:2014-07-10 16:47:06

标签: javascript jquery css

我知道基本的jQuery。我想通过jQuery在parent li上添加活动类。

直播网站 - http://www.arif-khan.net/other/active/page1.html 转到那里,然后转到支持菜单(http://www.arif-khan.net/other/active/page2.html)下的第2页。您可以在父li(支持)上看到所有li上的代码添加活动类。 我需要修改该代码,以便父li(支持)将获得活动类而不是父+所有子li。

代码 -

 <ol id="menu">
        <li><a href="Default.aspx" title="Home Page" style="color:#FFF">Home</a>        
        <li><a href="OverView.aspx" title="Overview">OverView</a>        
        <!-- sub menu -->
              <ol>     
                <li><a href="Technical-Info.aspx" title="Technical Info">Technical Info</a></li>
                <li><a href="End-Device-Info.aspx" title="End Device Info">End Device Info</a></li>
              </ol>
        </li><!-- end sub menu -->        
        <li><a href="Register.aspx">Register To Service</a></li>
        <li><a href="Rates.aspx">Rates</a></li>              
        <li><a href="#">Support</a>        
              <!-- sub menu -->
              <ol>     
                <li><a href="page2.html" title="Page2">Page2</a></li>
                <li><a href="TOS.aspx" title="TOS">Terms Of Service</a></li>
                <li><a href="Contact_Us.aspx" title="Order the service">Contact Us</a></li>
              </ol>
        </li><!-- end sub menu -->        
        <li><a href="skype:nir2far?call" title="Call us on Skype">Skype</a></li>
    </ol>

的jQuery -

<script>
$(document).ready(function(){
$('ol#menu li a').each(function(index, element) {
    var li = $(element).attr('href');
    $(element).parent().removeClass("active");   
   var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);

    if(filename==li)
    {
            $(element).parents("li").addClass("active");
    }

});
});
</script>

2 个答案:

答案 0 :(得分:0)

parents()方法选择DOM树上的所有匹配父元素。 ,您可以使用parent()选择直接父元素,使用closest()选择DOM树上的第一个匹配父元素。

所以试试

$(element).closest("ol").parent("li").addClass("active");

而不是

$(element).parents("li").addClass("active");

答案 1 :(得分:0)

您必须使用

$(element).parent('li').parents('li').addClass("active");

而不是

$(element).parents("li").addClass("active");

你的主页'page2'在'li'里面,所以这是它的直接父级。您必须访问'li的父母。