###実現したいこと
アドレスバーの最後のパスと、サイドナビゲーションの最後のパスが一致した場合に
サイドナビゲーションの<li>に現在地を示す「class="current"」を付けたく思っております。
色々調べて記述をし、意図通りの動作はするようになったのですが、もし、もっとシンプル、もしくは作法的なことで良い記述方法がありましたら向学のためにご教授いただけないでしょうか?
###HTML
html
1<ul id="side"> 2 <li><a href="/xxx/aaa/">サイドナビ</a></li> 3 <li><a href="/xxx/bbb/">サイドナビ</a></li> 4 <li><a href="/xxx/ccc/">サイドナビ</a></li> 5</ul>
###下記で上手くいきましたが、より良い記述の方法があれば勉強したく思っています。
アドレスバーとサイドバーのアドレスを取得して、「/」で分割して配列にし、最後のパスを取得、この2つがマッチしたら「class="current"」をつける、ということをしているつもりです。
javascript
1var pathname = location.href.split('/'); 2var pathnameLast = pathname[pathname.length - 2]; 3$('#side a').each(function(){ 4 var $href = $(this).attr('href').split('/'); 5 var $hrefLast = $href[$href.length - 2]; 6 if(pathnameLast.match($hrefLast)) { 7 $(this).parent('li').addClass('current'); 8 } 9});
学習する中で、なかなか要領よく記述するコツが掴めず、アドバイスいただけますと嬉しく思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/19 16:20
2017/04/19 16:27
2017/04/19 16:56