我正在使用jQuery Treeview用于在具有嵌套级别类别的网站上导航的插件。每个类别中都有产品,每个产品都有一种或多种信息类型。
所以我的网址可以是:
- foo.com/view/cat_id/
- foo.com/view/cat_id/prod_id/
- 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/