如何将类分配给与当前URL匹配的href?

时间:2012-01-30 15:41:50

标签: jquery jquery-ui

我正在尝试在jQuery UI手风琴中分配一个与URL匹配的类。

示例:

在jQuery Accordion中,我有以下链接(它们不包含主机名):

  • 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');
        } 
      });
    

    2 个答案:

    答案 0 :(得分:0)

    <击> 网址需要以颜色结束(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');
    } 
    

    答案 1 :(得分: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];
      }
    

    如果网址为http://whatever.com/whatever.html?pcat=brown&image,此函数将返回“褐色”。

    然后我猜这样的事情:

    if($('a').text() == getQuerystring('?')) {
        $(this).addClass('active');
    }