これは...
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()
にはブラウザのサポートが一切なく、インラインでfor (in)
が冗長であるため、この解決方法はありませんでした。
感謝:) – rodboc