2009-08-16 119 views

回答

39

這應做到:

var newClass = window.location.href; 
newClass = newClass.substring(newClass.lastIndexOf('/')+1, 5); 
$('body').addClass(newClass); 

整個 「五個大字」事情有點令人擔憂;這種任意的切斷通常是紅旗。我建議抓住一切直到_或:

newClass = newClass.match(/\/[^\/]+(_|\.)[^\/]+$/); 

這種模式應該產生以下

  • ../about_us.html:約
  • ../something.html:東西
  • ./has_two_underscores.html:有
+6

比$('body')更有效的是$(document.body),避免了選擇器進程。請參閱http://jsperf.com/jquery-body-vs-document-body-selector(注意:在給定的統計數據中'higher is better') – 2013-03-18 12:47:41

+0

$(document.body)也適用於jQuery 1.9.0(而$ (「body」)不起作用(在Chrome中測試))。 – 2013-04-18 20:54:48

+0

哦,謝謝你我試圖這樣做,它不工作,但你救了我:) – Jerome 2017-04-27 09:32:49

-3

像這樣的東西可能會奏效:

$("body").attr("class", "about"); 

它使用jQuery的attr()到 '約'添加類身體。

+0

這適用於向課程中添加課程。只是沒有回答這個問題。 – iCode 2016-08-30 16:19:47

-1

那麼,你會想要document.location。做一些字符串操作就可以了(除非jQuery有辦法避免你的工作),然後

$(body).addClass(foo); 

我知道這是不是完整的答案,但我相信你可以工作,其餘的: )

10

用途:

$(document.body).addClass('about'); 
1

可以使用提取的URL的一部分簡單regular expression

var url = location.href; 
var className = url.match(/\w+\/(\w+)_/)[1]; 
$('body').addClass(className); 
-4

我有同樣的問題,

<body id="body"> 

ID標籤添加到身體:

$('#body').attr('class',json.class); // My class comes from Ajax/JSON, but change it to whatever you require. 

然後切換爲身體使用id的類。這已在Chrome,Internet   Explorer和Safari中進行了測試。

相關問題