Как добавить класс в тег тела?

Я хочу добавить класс в тег body с помощью jQuery.

Например, если URL http://www.mywebsite.com/about_us.asp, я хочу добавить первые пять букв, в данном случае "около", в тело тег:

<body class="about">

Как я могу это сделать?

Ответ 1

Это должно сделать это:

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

Вся вещь "пять персонажей" немного волнует; такое произвольное отсечение обычно является красным флагом. Я бы рекомендовал поймать все до тех пор, пока не будет _ или.:

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

Этот шаблон должен давать следующее:

  • ../about_us.html: о
  • ../something.html: something
  • . ./has_two_underscores.html: имеет

Ответ 2

Использование:

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

Ответ 3

Вы можете извлечь эту часть URL-адреса с помощью простого регулярного выражения:

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

Ответ 4

Ну, вам захочется document.location. Сделайте какие-то манипуляции с строкой на нем (если у jQuery нет возможности избежать этой работы), а затем

$(body).addClass(foo);

Я знаю, что это не полный ответ, но я предполагаю, что вы можете справиться с остальными:)

Ответ 5

Что-то вроде этого может работать:

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

Он использует jQuery attr(), чтобы добавить класс 'about' в тело.

Ответ 6

У меня была та же проблема,

<body id="body">

Добавьте тег идентификатора в тело:

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

Затем переключите класс для тела с помощью id. Это было протестировано в Chrome, Internet Explorer и Safari.