我知道基本的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>
答案 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的父母。