【问题标题】:Shorten URL value as Javascript variable将 URL 值缩短为 Javascript 变量
【发布时间】:2010-09-25 10:31:39
【问题描述】:

我正在使用jQuery Treeview 插件在具有嵌套级别的类别的站点上进行导航。在每个类别中都有产品,每个产品都有一个或多个信息类型。

所以我的网址可以是:

  1. foo.com/view/cat_id/
  2. foo.com/view/cat_id/prod_id/
  3. foo.com/view/cat_id/prod_id/info_id/

问题是,产品的导航与类别分开,这意味着 Treeview 仅“了解”(因此标记为“活动”)案例 1。案例 2 和 3 意味着树已折叠,而我想要在所有情况下对 cat_id 开放的树。

(我对任何事情都持开放态度,但是)我认为解决方案是一些 Javascript 技巧,可以从 URL 中删除 cat_id/ 之后的任何内容,以便我可以将结果传递给 Treeview,但不是既定事实Javascript 我不知道该怎么做。

注意:我正在寻求有关 Javascript 正则表达式的帮助,而不是 Treeview,但如果有人知道现成的解决方案,我当然会全神贯注。

TIA。

【问题讨论】:

    标签: javascript jquery regex treeview


    【解决方案1】:

    在朋友的帮助下(感谢 Sawks),我将给出我自己问题的答案,以防其他人发现自己处于同一条船上。

    我将 jquery.treeview.js 中从 206 开始的行更改为:

    case "location":
        var current = this.find("a").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); });
        if ( current.length ) {
            current.addClass("selected").parents("ul, li").add( current.next() ).show();
        }
        break;
    }
    

    到:

    case "location":
        var current_location = location.href.toLowerCase();
        var current_base = current_location.split('/').slice(0,5).join('/')+'/';
        var current = this.find("a").filter(function() { return this.href.toLowerCase() == current_base; });
        if ( current.length ) {
            current.addClass("selected").parents("ul, li").add( current.next() ).show();
        }
        break;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多