2011-01-11 11 views
1

私は指定された時間中に 'day'のクラスを追加する私のフッタに以下のコードを設定しました。他のクラスを削除せずにクラスを追加するにはどうすればよいですか?

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

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

問題が発生すると、クラスが追加され、既に配置されている他のクラスが取り除かれます。たとえば、「日のクラスが追加されずに、私の体タグは次のようになります。

<body class="home"> 

しかし、「日のクラスが追加されたときに、私の体タグが変身:

<body class="day"> 

私は思いますそのように、 'day'クラスがすでにこのようなものに追加されているようにしましょう:

<body class="home day"> 

これを行うにはどうすればいいですか?

答えて

2

document.body.className = 'day'; 

を交換しようとしたことがあり、私は、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,' '); 
} 
+0

私はdocument.body.className = 'day'を置き換えるためにそのコードを使うことはできますか、それとも他のものを変更する必要はありますか? – J82

+0

はい、 'document.body.className = day'をこれで置き換えてください。これは 'className'プロパティを手動で設定するよりもはるかに簡単です。特に個々のクラスを削除したい場合は特にそうです。 –

+0

これはどういう意味ですか?関数のsetTimeStyles(){ var currentTime = new Date()。getHours(); if(currentTime> 5 && currentTime <17){ $(document).addClass( "day"); ( ) } – J82

1

はあなたが

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

これは問題なく動作します。ありがとうございました。 :) – J82

0

を行うことができます

のjQueryで
document.body.className = document.body.className + ' day'; 
関連する問題