2

次の JavaScript を使用して、URL 名に基づいてクラスを追加しています。

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

ファイルがディレクトリ内にある場合を除いて、ファイル名ではなくフォルダー名のみを追加することを除いて、正常に機能しています。追加する 2 番目の変数を追加しましたが、適切な式がありません。これは、url products/nameoffile.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());
}

ディレクトリ内のファイルの 2 番目のクラスに追加するクラスを追加する正しい式を知りたいです。'products/nameoffile.php' の代わりに、クラスを body に追加するために 'nameoffile' だけが必要です。

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 に答える