這應該做的伎倆......
var classes = ['select', 'btn_1', 'btn_2', 'btn_3');
$('div')
// Remove any of the existing defined classes added to elements.
.removeClass(classes.join(' '))
// Add the class based on the hour of the day.
.addClass(function() {
var hour = (new Date).getHours();
if (hour < 6) {
return classes[0];
} else if (hour < 10) {
return classes[1];
} else if (hour < 15) {
return classes[2];
}
return classes[3];
});
jsFiddle。
或者,您可以使用一個對象來保存classes
,其中每個值都是小時的上限,並將Object.keys(classes).join(' ')
傳遞給removeClass()
。
然後,您可以大大簡化addClass()
函數的正文。
但是,我沒有采用這種解決方案,因爲Object.keys()
沒有最好的瀏覽器支持,並且它與內嵌的勻化片是冗長的。
感謝您的幫助:) – rodboc 2012-03-30 15:03:15