0

<a>jQueryでは、現在のURLを指しているhrefをどのように選択しますか

例:
URL =
http://server/dir/script.aspx?id=1

これを選びたい<a>
<a href="/dir/script.aspx">...</a>

私はこれを試しましたが、うまくいきません:

var url = window.location.href;
$('#ulTopMenu a["'+url+'"*=href]').addClass("selected");

おそらく構文が間違っています。誰でもそれを行う正しい方法を知っていますか?

前もって感謝します

4

3 に答える 3

4

選択したタブの「パターン」を解決しようとしているようです。次のコードを使用して、これを自分で解決できることがわかりました。

var nav = location.pathname.substr(1).split('/', 2)[0] || '/';
if (nav) {
    $('#ulTopMenu a[href$="' + nav + '"]').parent().addClass('selected');
}

これは基本的に、URL が現在の URL と同じ末尾で終わる場合に、selected のクラスを追加することを意味します。「類似」の URL に注意する必要がありますが、実際に類似している URL が多数ある場合は、おそらくサーバー側のソリューションを検討する必要があります。

(私はこのテクニックについてしばらく前に記事を投稿しました - それが実際にあなたがやろうとしていることであれば:http://leftlogic.com/lounge/articles/auto-selecting_navigation/

于 2008-11-27T01:10:00.207 に答える
1

あなたの質問に対する答えはわかりませんが、そのセレクター構文は有効ですか?

'#ulTopMenu a["http://www.foo.com"*=href]'

そのようなことが可能であれば、次のように書かれると思います

'#ulTopMenu a[href*="http://www.foo.com"]'
于 2008-11-27T00:59:49.790 に答える
0

ありがとうレミー、うまくいきませんでしたが、近いです。
これが私の最終的なコードです

  var scriptname = GetUrlScriptname();
  $('#ulTopMenu a[href$="' + scriptname + '"]').parent().addClass('selected');

function GetUrlScriptname()
{
  var rex = new RegExp("\\/[^\\/]+\\.\\w+($|\\?)");
  var match = rex.exec(location.pathname);
  return match[0].substring(1);
}
于 2008-11-27T02:51:44.963 に答える