2010-10-31 43 views
0

我知道有JavaScripts或jQuery插件設置一些身體類(例如類似的東西<body class="ff3.5 ff win gecko some-awesome-icons-article-with-100-icons">) 我不知道這是怎麼被稱爲...? 你知道我的意思嗎?你有一個鏈接/它的名字? 設置爲css-body-class的文章的路徑對於我來說比瀏覽器或操作系統更重要。jQuery插件/ JavaScript:設置與實際URL的身體類

+0

你能提供一些,爲什麼更多的信息?將url設置爲className似乎有點過分。肯定會有更好的方法。 – BGerrissen 2010-10-31 20:07:25

回答

1

如果我理解了你的查詢,你需要給某個標籤添加一個類。使用jquery這是如何做到的。

$('body').addClass('anyClass'); 
+0

謝謝,但我知道如何設置/添加一個類與jQuery ;-)!但是我不需要...... – Poru 2010-10-31 20:05:38

2

我想你要求的代碼將提取URL路徑的「文件名」部分,並將其設置爲正文元素上的類名稱。

如果是的話,那麼這裏的基本思想是:

$(document).ready(function() { 

    var parts = window.location.pathname.split('/'); 

    var basename = "default-no-basename"; 
    if(parts && parts.length) { 
     var idx = parts.length-1; 
     if(parts[idx] == '' && parts.length > 1) { 
      --idx; 
     } 
     basename = parts[idx]; 
    } 
    //alert("basename: "+basename); 
    $(body).addClass(basename); 
}); 

該代碼簡單地提取在最後一次斜線頁面的URL的一部分,並將其寫入body標籤的class屬性。如果url路徑是一個「目錄」(即它以斜線結尾),那麼它將使用尾隨目錄名稱。如果url路徑只是'/',那麼它將默認添加類名'default-no-basename'

重要:上面的代碼做任何事情,以確保類名符合在CSS類名允許的字符。因此,如果您的網址類似於:http://example.com/abc/my-cool-page(with stuff).html,那麼您將遇到問題,因爲css類將設置爲"my-cool-page(with stuff).html"

,你會因此想要麼確保這是從來沒有被稱爲具有特殊字符在頁面上(如().,並在上面的例子中[空格]字符)。或者你想添加一些檢查到邏輯去除不允許的字符。

祝你好運。