jQueryでbodyタグにクラスを追加したいとします。例えばbodyタグにクラスを追加するには?
URLがhttp://www.mywebsite.com/about_us.aspであれば、私はbodyタグに、「約」この場合には、最初の5つの文字を追加したい:
<body class="about">
はどのように私はそれを行うことができますか?このような
jQueryでbodyタグにクラスを追加したいとします。例えばbodyタグにクラスを追加するには?
URLがhttp://www.mywebsite.com/about_us.aspであれば、私はbodyタグに、「約」この場合には、最初の5つの文字を追加したい:
<body class="about">
はどのように私はそれを行うことができますか?このような
これはそれを行う必要があります。
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の一部を抽出することができ何かがうまくいくかもしれない:
$("body").attr("class", "about");
それは身体に '約' クラスを追加するためにjQueryのattr()
を使用しています。
これは、クラスをボディに追加するためには問題ありません。ちょうどその質問に答えなかった。 – iCode
まあ、あなたはdocument.location
が必要になるでしょう。その後、
$(body).addClass(foo);
私は、これは完全な答えではないですけど、私はあなたが残りをうまくできると仮定(jQueryのは、あなたのためにその仕事を回避する方法を持っていない限り)、その上に文字列操作のいくつかの並べ替えを行います。 )
用途:
$(document.body).addClass('about');
があります
var url = location.href;
var className = url.match(/\w+\/(\w+)_/)[1];
$('body').addClass(className);
は$( 'body')よりも効果的ですが、$(document.body)であり、セレクタプロセスが回避されます。 http://jsperf.com/jquery-body-vs-document-body-selectorを参照してください(注:指定された統計情報では「より高い」が良い) –
$(document.body)はjQuery 1.9.0でも動作します($ (「本体」)が機能しない(Chromeでテスト済み)) –
ああありがとう、私はそれをやろうとしていたが、それは働いていなかったが、あなたは私を救った:) – Jerome