I’m trying to make a schedule to change who is doing a task every 7 days. I need it to change a html element class and repeat every Friday. Thanks in Advance.
var date = new Date();
var dayOfWeek = Date.getDay(); // 0 is Sunday, 1 is Monday, etc...
var kestrals = document.getElementById("k");
var eagles = document.getElementById("e");
var merlins = document.getElementById("m");
var currentDuty
var intervalID = window.setInterval(changeDuty, 10000);
function changeDuty() {
if(dayOfWeek=5) {
//Dont know what do do here
}
}
>Solution :
One solution might be to use the classList
property of the element.
Example:
const kestrals = document.getElementById("k");
const eagles = document.getElementById("e");
const merlins = document.getElementById("m");
let currentDuty = kestrals; // initial duty value
function changeDuty() {
const today = new Date();
const dayOfWeek = today.getDay(); // 0 is Sunday, 1 is Monday, etc.
if (dayOfWeek === 5) { // 5 - Friday
switch (currentDuty) {
case kestrals:
toggleDuty(kestrals, eagles);
currentDuty = eagles;
break;
case eagles:
toggleDuty(eagles, merlins);
currentDuty = merlins;
break;
case merlins:
toggleDuty(merlins, kestrals);
currentDuty = kestrals;
break;
default:
toggleDuty(kestrals, eagles);
currentDuty = eagles;
break;
}
}
}
// toggle duty class on elements
function toggleDuty(offDuty, onDuty) {
offDuty.classList.remove("duty");
onDuty.classList.add("duty");
}
// set the initial value of the duty class for the element
kestrals.classList.add("duty");
// call changeDuty() every week
const oneWeek = 7 * 24 * 60 * 60 * 1000;
const intervalID = setInterval(changeDuty, oneWeek);