如何在body标签中添加一个类?

时间:2009-08-16 05:27:52

标签: jquery

我想用jQuery向body标签添加一个类。

例如,如果网址为http://www.mywebsite.com/about_us.asp,我想在正文标记中添加前五个字母,在本例中为“about”:

<body class="about">

我该怎么做?

7 个答案:

答案 0 :(得分:44)

这应该这样做:

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

整个“五个字”的东西有点令人担忧;那种任意截止通常是一个红旗。我建议捕捉所有内容,直到_或。:

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

该模式应该产生以下结果:

  • ../about_us.html:about
  • ../something.html:某事
  • ./has_two_underscores.html

答案 1 :(得分:12)

使用:

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

答案 2 :(得分:2)

您可以使用简单的regular expression

提取该部分网址
var url = location.href;
var className = url.match(/\w+\/(\w+)_/)[1];
$('body').addClass(className);

答案 3 :(得分:0)

$('body').toggleClass("className");

完美无缺

答案 4 :(得分:-1)

好吧,你会想要document.location。对它执行某种字符串操作(除非jQuery有办法避免为你工作)然后

$(body).addClass(foo);

我知道这不是完整的答案,但我认为你可以完成其余的工作:)

答案 5 :(得分:-3)

这样的事可能有用:

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

它使用jQuery的attr()将关于'的类'添加到正文中。

答案 6 :(得分:-4)

我遇到了同样的问题,

<body id="body">

为正文添加ID标记:

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

然后使用id切换正文的类。这已经在Chrome,Internet Explorer和Safari中进行了测试。