我无法使用网址识别功能为菜单设置活动状态。我想要实现的是让<a href="">
更改为<a id="active" href ="">
,如果您在其链接的页面上。这就是我到目前为止所做的,似乎没有用。
如果您有任何想法,请告诉我并感谢您的帮助!
$(function(){
var url = window.location.href;
var page = url.substr(url.lastIndexOf('/')+1);
$('.ActiveMenu a[href*="'+page+'"]');
$(this).attr({ id: 'active'});});
<ul id="menu">
<li id="Link1" class="ActiveMenu"><a href="URL1">Link 1</a></li>
<li id="Link2" class="ActiveMenu"><a href="URL2">Link 2</a></li>
<li id="Link3" class="ActiveMenu"><a href="URL3">Link 3</a></li>
</ul>
答案 0 :(得分:1)
所以问题是你的函数不知道$(this)是什么。相反,您应该将目标设置为正确的元素,然后为其添加一个类。你不应该使用id,因为你应该只有一个id,它应该是唯一的标识符,而不是状态。班级更适合它。如果这对您有用,请告诉我! :)
<强>样本强>
$(function(){
var url = window.location.href;
var page = url.substr(url.lastIndexOf('/')+1);
target = $('.ActiveMenu a[href*="'+page+'"]');
$(target).addClass('active');
});
<ul id="menu">
<li id="Link1" class="ActiveMenu"><a href="URL1">Link 1</a></li>
<li id="Link2" class="ActiveMenu"><a href="URL2">Link 2</a></li>
<li id="Link3" class="ActiveMenu"><a href="URL3">Link 3</a></li>
</ul>
答案 1 :(得分:0)
请添加/更改类名而不是ID
$(function(){
var url = window.location.href;
var page = url.substr(url.lastIndexOf('/')+1);
var currentPage=$('.ActiveMenu a[href*="'+page+'"]');
currentPage.addClass('active');
});
答案 2 :(得分:0)
请使用
$(this).attr("id","active");