2009-08-16 9 views

答えて

39

これはそれを行う必要があります。

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

全体 "の5つの文字"事は少し気になります。そのような任意のカットオフは通常赤い旗です。 。パターンは次のように得られるはず

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

  • ../about_us.html
  • ../something.html:何か
  • 私は_かまで、すべてをキャッチお勧めします。 ./has_two_underscores.html:あなたは、簡単なregular expressionを使用してURLの一部を抽出することができ
+6

は$( 'body')よりも効果的ですが、$(document.body)であり、セレクタプロセスが回避されます。 http://jsperf.com/jquery-body-vs-document-body-selectorを参照してください(注:指定された統計情報では「より高い」が良い) –

+0

$(document.body)はjQuery 1.9.0でも動作します($ (「本体」)が機能しない(Chromeでテスト済み)) –

+0

ああありがとう、私はそれをやろうとしていたが、それは働いていなかったが、あなたは私を救った:) – Jerome

-3

何かがうまくいくかもしれない:

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

それは身体に '約' クラスを追加するためにjQueryのattr()を使用しています。

+0

これは、クラスをボディに追加するためには問題ありません。ちょうどその質問に答えなかった。 – iCode

-1

まあ、あなたはdocument.locationが必要になるでしょう。その後、

$(body).addClass(foo); 

私は、これは完全な答えではないですけど、私はあなたが残りをうまくできると仮定(jQueryのは、あなたのためにその仕事を回避する方法を持っていない限り)、その上に文字列操作のいくつかの並べ替えを行います。 )

10

用途:

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

があります

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、インターネット エクスプローラ、およびSafariでテストされています。