前提・実現したいこと
■ナビゲーションにカレント機能をつけたい
ナビゲーションのリンクと現ページのURLが一致した際、該当ナビゲーションのliタグにクラス(selected)を付与し、
現在のURLがナビゲーションにない場合はクラスを付与しない
ご相談内容
ナビゲーションのリンクと現ページのURLが一致した際、該当ナビゲーションのliタグにクラス(selected)を付与したく
jqueryを書きました。
ローカルでは問題なく動作確認ができるのですが、サーバーへアップしたところエラーが表示されました。
そもそもコード自体が間違っているのか、
別に原因があるのかがわからずご相談したく、ご質問させていただきました。
発生している問題・エラーメッセージ
Uncaught TypeError: Cannot read property 'match' of undefined
該当のソースコード
html
1<body id="top"> 2<ul id="nav"> 3 <li class="fruits"><a href="/">トップ</a></li> 4 <li><a href="/orenge.html">オレンジ</a></li> 5 <li><a href="/grape.html">グレープ</a></li> 6</ul>
jquery
1$(function(){ 2 $('#nav li a').each(function(){ 3 var target = $(this).attr('href'); 4 if(location.pathname.match(target) && target.match("html")) { 5 $(this).parent().addClass('selected'); 6 } else { 7 $(this).parent().removeClass('selected'); 8 } 9 }); 10 if (document.getElementById('top') != null) { 11 $('.fruits').addClass('selected'); 12 } 13}); 14
jqueryをはじめて書いてみたので無駄な記述が多いかと存じますが何卒よろしくおねがいします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。