我有以下脚本:
(function($) {
$.fn.MenuAutoActive = function() {
var menus = $('ul li a');
//menus.removeClass('active');
var matches = menus.filter(function() {
return document.location.href.indexOf($(this).attr('href')) >= 0;
});
matches.addClass('active');
};
id做什么:
我遇到的唯一问题是它只能看到href的最后一位:
例如:主菜单将是:
<ul>
<li><a href="index.html"></a></li>
<li><a href="Services/index.html"></a></li>
<li><a href="Portfolio/index.html"></a></li>
<li><a href="Conact/index.html"></a></li>
</ul>
网址= http://www.website.com/Services/
在这种情况下,脚本不会标记<a href="Services/index.html"></a>
,因为URL不包含index.html。
如何查看URL的最后一个(最后一个/之后)和最后一个位(最后一个/之前)?
非常感谢任何帮助!
皮特
答案 0 :(得分:1)
这应该有效:
return document.location.href.indexOf(this.href) >= 0;
请注意,这会访问DOM元素的href
属性。这将返回绝对URL。
因此this.href
会为您http://www.website.com/index.html
而不仅仅index.html
。
答案 1 :(得分:0)
尝试替换
document.location.href.indexOf($(this).attr('href')) >0
通过
document.location.toString().indexOf($(this).attr('href')) >0
答案 2 :(得分:0)
var bits=$(this).attr('href').split('/');
var thelastbit=bits.pop();
var thepenultimatebit=bits.pop(); // previous call removed the last bit
如果您没有首先将index.html放在链接中,或者在询问时将其删除,那么可能会更快
return document.location.href.indexOf($(this).attr('href').replace('index.html','')) >= 0;