匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

jQueryの質問です。


以下の様なソースがあります。
< nav id="g-nav">
  < ul>
    < li>< a href="http://123.jp">テキスト01< /a>< /li>
    < li>< a href="http://456.jp">テキスト02< /a>< /li>
    < li>< a href="http://789.jp">テキスト03< /a>< /li>
  < /ul>
< /nav>

このliに対して
 もし、現在のページのURLとリンク先のURLが同じだったら、そのliにcurrentというclassをつける
という命令を書きたいのですが、うまく書けません。。

location.hrefで現在のページと、liのsrcを拾ってきて、ifとforをうまく組分せれば書けそうな気がするのですが、組み合わせ方が間違っているのかお手上げです。。。

具体的な記述含めご教授頂けると嬉しいです。

よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/08/29 19:52:57
  • 終了:2013/08/31 13:07:18
匿名質問者

質問者から

匿名質問者2013/09/01 17:06:40

考えて見たのですが、上記方法ができたとしても、セカンドページのサブメニューに入ってしまうと別urlになるからダメなのかなという気がしてきました…。どうなんでしょう。そこも踏まえて考えてみようと思います。
良い案を教えていただける方がいらっしゃいましたらお願いします。

ベストアンサー

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2013/08/30 12:50:00

$( 'nav#g-nav li a[href*="' + location.hostname + '"]' )
  .parent('li')
  .addClass('current')
匿名質問者

なるほど。自分が難しく考えすぎていたのかもしれません。
頂いたソースをもとに、必要に応じて追加修正しながら頑張ってみようと思います。

ありがとうございました。

2013/08/31 13:08:06

その他の回答(0件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2013/08/30 12:50:00ここでベストアンサー

$( 'nav#g-nav li a[href*="' + location.hostname + '"]' )
  .parent('li')
  .addClass('current')
匿名質問者

なるほど。自分が難しく考えすぎていたのかもしれません。
頂いたソースをもとに、必要に応じて追加修正しながら頑張ってみようと思います。

ありがとうございました。

2013/08/31 13:08:06
  • 匿名質問者
    匿名質問者 2013/08/30 09:31:53
    色々調べてここまで書けました。

    $( "#g-nav li a").each( function(){
    if( $(this).attr( "href") == location.href){
    $( this).parent().toggleClass( "current");
    }
    });

    これだと、そのページのトップに行った時にはクラス名がついてますが、
    http://123.jp/hogehoge/
    になったときには消えてしまいます。
    そこを回避する方法などアドバイス頂けると幸いです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません