2012-01-30 4 views
0

URLにマッチしたjQuery UIアコーディオン内にあるクラスを割り当てようとしています。現在のURLと一致するhrefにクラスを割り当てる方法は?

例:jQueryのアコーディオンインサイド

、私は次のリンクは(彼らはホスト名が含まれていない)している:

  • Brown
  • Green
  • Red
  • 動的に生成されたリンク。

    リンクページが現在開かれているページ(URLアドレスバーで有効)である場合、それらのリンクの1つにアクティブなクラスを与えることができます。

    理想的には、色が変わった場合には?pcat =単独で検出できるようにしたいと考えています。

    どうすればいいですか?このコードをしようとしていた:

    <script type="text/javascript"> 
        $(document).ready(function() { 
        $(function(){ 
        var matches; 
        if(matches = (new String(document.location)).match(/?pcat=/)) { 
         $("a[href=" + matches[0] + "]").addClass('active'); 
        } 
        }); 
    

    答えて

    0

    URLは色で( href$=)を終了する必要があります:

    if(matches = location.href.match(/\?pcat=(\w+)/)) { 
        $('a[href$="' + matches[1] + '"]').addClass('active'); 
    } 
    

    EDITは、私はちょうどあなたのURLがpcat=...ではありません実現しました。マッチした位置のサブストリングが含まれている<a>をフィルタリングする代わりに、これを使用します。

    if(matches = location.href.match(/\?(pcat=\w+)/)) { 
        $('a[href*="' + matches[1] + '"]').addClass('active'); 
    } 
    
    +0

    http://api.jquery.com/attribute-ends-with-selector/ – ori

    +0

    すごいです!ありがとうございました。 :) – JayDee

    0

    クイックGoogleは私にこれを与えた:

    function getQuerystring(key, default_) { 
        if (default_==null) default_=""; 
        key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
        var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); 
        var qs = regex.exec(window.location.href); 
        if(qs == null) 
         return default_; 
        else 
         return qs[1]; 
        } 
    

    URLがhttp://whatever.com/whatever.html?pcat=brown&imageであれば、この機能は、たとえば「ブラウン」を返します。

    その後、私は推測するだろう。このような何か:

    if($('a').text() == getQuerystring('?')) { 
        $(this).addClass('active'); 
    } 
    
    関連する問題