メニュー項目の に従ってアクティブなメニュー項目にJQuery
を追加するために、次のコードを使用しています。class name
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
にspace
置き換える必要があります。%20
<li><a href='/page 2'>page 2</li>
することが:
<li><a href='/page%202'>page 2</li>