2

我正在使用以下 javascript 添加基于 url 名称的类。

$(function(){
    var loc = window.location.pathname.match(/^\/?(\w+)\b/);
    if(loc) $(document.body).addClass(loc[1].toLowerCase());
}

它工作正常,除非文件在目录中,它只添加文件夹名称而不是文件名。我添加了第二个要添加的变量,但是我没有正确的表达式,它不断将整个 url products/nameofile.php 添加为类

$(function(){
    var loc = window.location.pathname.match(/^\/?(\w+)\b/);
    var loc2 = window.location.pathname.match(/^\/?(.*)\b/);
    if(loc) $(document.body).addClass(loc[1].toLowerCase());
    if(loc2) $(document.body).addClass(loc2[1].toLowerCase());
}

我想知道为目录中的文件添加要为第二个类添加的类的正确表达式。而不是 'products/nameofile.php' 我只想将 'nameofile' 类添加到正文中。

4

3 回答 3

0

尝试这个:

$(function(){
    var loc = window.location.pathname.split("/");
    if (loc[loc.length-1]) {
       var cls = loc[loc.length-1]].split('.');
       $('body').addClass(cls[0].toLowerCase());
   }
})

演示

于 2012-07-13T23:22:44.827 回答
0

不使用正则表达式,但也许这会为您指明正确的方向。

http://jsfiddle.net/aTnyk/

于 2012-07-13T23:25:23.593 回答
0

不要使用正则表达式,只需使用简单的split()and pop()

var loc = window.location.pathname.split('/').pop();
于 2012-07-13T23:28:12.513 回答