我使用以下代码的 JQuery 来根据菜单项的 URL 向活动菜单项添加类名:
问题不在代码本身,而是在于
当我将
var aurl = window.location.pathname;
$('.menu li a[href="'+aurl+'"]').parent('li').addClass('active');
问题不在代码本身,而是在于
window.location.pathname
。当我将
URL
设置为以下HTML
代码时,它可以工作:<ul>
<li><a href='/'>home</a></li>
<li><a href='/page1'>page 1</a></li>
<li><a href='/page%202'>page 2</li>
</ul>
但是当我将URL
设置成以下HTML
代码时,它就不起作用了:
<ul>
<li><a href='http://myhost.com'>home</a></li>
<li><a href='http://myhost.com/page1'>page 1</a></li>
<li><a href='/page 2'>page 2</a></li>
<li><a href='http://myhost.com/page 3'>page 3</a></li>
<li><a href='http://myhost.com/page%204'>page 4</a></li>
</ul>
我需要一个替代window.location.pathname
的东西,可以将所有这些情况统一识别。
谢谢
更新 #1:
我已经使用了2个变量来表示URL,如下:
var aurl = window.location;
var burl = window.location.pathname;
$('.menu li a[href="'+aurl+'"],.menu li a[href="'+burl+'"]').parent('li').addClass('active');
它可以处理所有类型的内容,但我仍然无法用带有空格的URL
定义它,我必须将其替换为%20
,如下所示:
<li><a href='/page 2'>page 2</li>
成为:
<li><a href='/page%202'>page 2</li>