2012-07-13 58 views
2

我正在使用下面的JavaScript來添加基於url名稱的類。如何使用目錄中的文件url在JavaScript中添加第二個類?

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

它工作正常,除非文件在目錄內,它只添加文件夾名稱而不是文件名。我加了第二個變量但是加我沒有合適的表情它不斷增加對整個URL產品/ 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()); 
} 

我想知道正確的表達添加類爲目錄中的文件添加第二個類。而不是'products/nameoffile.php',我只想'nameoffile'將這個類添加到body中。

+0

你應該能夠在您的正則表達式組合成類似'/^\ /(\ w +) (。*)\ b /',它將返回一個包含棋子的數組。我的正則表達式可能不是你所需要的,但它只是一個簡單的例子 – MrOBrian 2012-07-13 23:26:16

回答

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()); 
    } 
}) 

DEMO

+0

這適用於主目錄。但是,當我創建名爲'products'的文件夾並將此代碼放置在產品頁面上時,它不會添加正確的類名稱。它使用目錄的名稱而不是文件名。 – derkoidus 2012-07-13 23:39:22

+0

@derkoidus嘗試更新的答案。 – undefined 2012-07-13 23:45:22

0

不要使用正則表達式,只使用一個簡單split()pop()

var loc = window.location.pathname.split('/').pop(); 
相關問題