2009-08-16 16 views

Antwort

39

Dies sollte es tun:

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

die ganzen "fünf Zeichen" etwas ist besorgniserregend; diese Art von willkürlichem Cutoff ist normalerweise eine rote Flagge. Ich würde empfehlen, alles, bis ein Fang _ oder:.

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

Dieses Muster folgendes ergeben sollte:

  • ../about_us.html: ca.
  • ../something.html: etwas
  • . ./has_two_underscores.html: hat
+6

effektiver als $ ('body') ist $ (document.body), vermeidet den Selektor-Prozess. Siehe http://jsperf.com/jquery-body-vs-document-body-selector (Hinweis: "höher ist besser" in gegebenen Statistiken) –

+0

$ (document.body) arbeitet auch mit jQuery 1.9.0 (während $ ("Körper") funktioniert nicht (getestet in Chrome)). –

+0

Oh danke ich habe versucht das zu tun und es hat nicht funktioniert aber du hast mich gerettet :) – Jerome

-3

So etwas wie dies funktionieren könnte:

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

Es nutzt jQuery attr() die Klasse 'über' auf den Körper hinzuzufügen.

+0

Dies funktioniert gut zum Hinzufügen einer Klasse zum Körper. Ich habe die Frage nicht beantwortet. – iCode

-1

Nun, Sie werden document.location wollen. Haben eine Art von String-Manipulation auf sie (es sei denn, jQuery eine Art und Weise hat, dass die Arbeit für Sie zu vermeiden) und dann

$(body).addClass(foo); 

Ich weiß, dass dies nicht die ganze Antwort, aber ich nehme an, Sie können den Rest ausrechnen:

)
10

Verwendung:

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

Sie, dass ein Teil der URL extrahieren kann mit einem einfachen regular expression:

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

ich das gleiche Problem,

<body id="body"> 

einen ID-Tag an den Körper hinzufügen

hatte:

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

Dann schalten die Klasse für den Körper mit der ID. Dies wurde in Chrome, Internet   Explorer und getestet.

Verwandte Themen