如何添加一个类而不让它摆脱其他类?

时间:2011-01-11 17:33:27

标签: javascript jquery class add

我在页脚中设置了以下代码,在指定的时间内添加了一类“day”。

function setTimeStyles() {
    var currentTime = new Date().getHours();
    if(currentTime > 5 && currentTime < 17) {
    document.body.className = 'day';
    }
}

$(document).ready(function() {
    setTimeStyles();
});

问题是当类被添加时,它将摆脱已经存在的其他类。例如,如果没有添加“day”类,我的body标签将是:

<body class="home">

但是当添加'day'类时,我的body标签会变成:

<body class="day">

我喜欢它,以便'day'课程被添加到已经存在的内容中:

<body class="home day">

我该怎么做呢?

3 个答案:

答案 0 :(得分:2)

在jQuery中你可以做到

$("body").addClass("day");

答案 1 :(得分:1)

您是否尝试过更换

document.body.className = 'day'; 

document.body.className = document.body.className + ' day';

答案 2 :(得分:0)

我不知道jquery如何添加一个类, 但您可能希望确保将其添加(或移动)到任何现有列表的结束, 在任何碰撞中都优先考虑。

function addClass(node, cname){
 var C= node.className.split(/\s+/), L= C.length;
 while(L){
  if(C[--L]=== cname) delete C[L];
 }
 C.push(cname);
 node.className= C.join(' ').replace(/ {2,}/g,' ');
}