Как добавить класс в тег тела?
Я хочу добавить класс в тег 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.