tags:

views:

194

answers:

5

I want to add a class to a body tag with jquery.

For example if URL is http://www.mywebsite.com/about_us.asp , I want add the first five letters, in this case 'about', to body tag <body class="about"> .

Can anyone help me please?

A: 

Might something like this work?

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

Andrew Siemer
A: 

Well you're going to want document.location, do some sort of string manipulation on it unless jquery has a way to avoid that work for you) and then

$(body).addClass(foo);

I know this isn't the complete answer, but I assume you can work the rest out :)

Noon Silk
A: 

How about:

$(document.body).addClass('about');
camomileCase
+6  A: 

This should do it:

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

The whole "five characters" thing is a little worrisome; that kind of arbitrary cutoff is usually a red flag. I'd recommend catching everything until an _ or .:

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

That pattern should yield the following:

  • ../about_us.html : about
  • ../something.html : something
  • ../has_two_underscores.html : has
Rex M
A: 

You can extract that part of the url using a simple RegExp:

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