javascript - 将 URL 值缩短为 Javascript 变量

标签 javascript jquery regex treeview

我正在使用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。

最佳答案

在 friend 的帮助下(感谢 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;
}

关于javascript - 将 URL 值缩短为 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/342410/

相关文章:

Javascript 四舍五入到最接近的 .5

javascript - 带有导航的 React-native ListView

javascript - React 中渲染的 HTMl 中的可点击按钮

javascript - 如何使用javascript文件解码编码?

regex - 如何循环遍历与 unix shell 脚本中的正则表达式匹配的文件

javascript - 使用 jquery 自动完成,我如何测试解析函数中的当前对象?

javascript - 在 ASP.NET MVC 中使用 jQuery 发布表单元素不起作用

javascript - JQuery如何将函数名称分配给$?

mysql - 如何匹配以任何顺序分隔的连字符

c - 使用正则表达式匹配调用函数