好的,我已经全力以赴寻找解决方案,但到目前为止,我找不到任何与我需要完成的事情相关的事情。
就逻辑而言,我需要的只是非常简单。
我有一个像这样的导航栏:
<nav>
<ul>
<li><a href="download.shtml">Download</a></li>
<li><a href="documentation.shtml">Documentation</a></li>
<li><a href="contact.shtml">Contact</a></li>
<li><a href="about.shtml">About</a></li>
</ul>
</nav>
网站的网址很简单:
http://domain.net/download.shtml
http://domain.net/documentation.shtml
http://domain.net/contact.shtml
http://domain.net/about.shtml
问题:
如何检测我所在的页面/网址,并将.active
类添加到相应的导航项?
最终结果将是,例如,如果我在下载页面中:
<nav>
<ul>
<li><a href="download.shtml" class="active">Download</a></li>
<li><a href="documentation.shtml">Documentation</a></li>
<li><a href="contact.shtml">Contact</a></li>
<li><a href="about.shtml">About</a></li>
</ul>
</nav>
提前感谢您对此事的任何帮助。
答案 0 :(得分:3)
您可以通过检查indexOf
location.href
来尝试此操作
$(function(){
$.each($("nav a"), function(){
var self = $(this);
if(location.href.indexOf(self.prop('href'))>-1){
self.addClass('active');
//self.parent().siblings().find('a').removeClass('active');
}
});
});
答案 1 :(得分:1)
如果你的网址很简单,你可以使用window.location.pathname。例如:
$(function(){
$('nav a').each(function(){
if( $(this).attr('href') === window.location.pathname.substring(1) ){
$(this).addClass('active');
}
});
});