2015-11-04 76 views
1

我有一个侧边栏,我试图用Javascript来改变外观以及点击目标页面。不过,我尝试了很多建议,但没有运气,我不明白为什么。添加课程“活动”到菜单

JsFiddle

我试着用这个JS代码:

$(document).ready(function() { 
    var url = window.location; 
    $('.navigation ul li a[href="'+url+'"]').parent().addClass('active'); 
}); 

但是,一旦我添加了一个href="~/~"属性,我得到一个"Unknown Command: [Link in href]" - 和"active"类不会被添加到元素。

感谢您的时间

回答

1

您正在尝试使用window.location获得当前页面的URL。但是,window.location实际上是一个对象,它包含多个属性,并不是包含当前页面URL的字符串。您需要使用window.location属性之一,最有可能的是window.location.pathname。但是,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Location以获取完整的选项列表。

+0

Window.location.pathname;解决了这个问题,感谢您的帮助 – PublicDisplayName

0

为您的代码,你需要的URL设置为var url = window.location.host+window.location.path';

+0

请考虑编辑您的帖子,添加更多关于您的代码的解释以及为什么它可以解决问题。一个主要包含代码的答案(即使它正在工作)通常不会帮助OP了解他们的问题。 – Drenmi

0

试试这个,

var url = window.location; 
// Will only work if string in href matches with location 
$('.navigation ul li a[href="'+ url +'"]').parent().addClass('active'); 

// Will also work for relative and absolute hrefs 
$('.navigation ul li a').filter(function() { 
    return this.href == url; 
}).parent().addClass('active');