2012-01-30 84 views
0

我想指定一個類,我有一個是通過URL匹配的jQuery UI的手風琴之內。如何將類分配給與當前URL匹配的href?

實施例:

內部jQuery的手風琴,我有以下鏈路(它們不包括主機名):這是動態生成的

  • Brown
  • Green
  • Red
  • 鏈接。

    我希望能夠給予積極的類的環節之一如果該鏈接頁面是當前打開的頁面(活動在URL地址欄)。

    理想情況下,我想能夠通過?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'); 
    } 
    

    編輯我才意識到你的網址不是以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 2012-01-30 15:56:57

    +0

    真棒!謝謝。 :) – JayDee 2012-01-30 16:53:40

    0

    快速谷歌給了我這個:

    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'); 
    } 
    
    相關問題