Javascript-需要在调用函数之前重置所有页面元素

Javascript-需要在调用函数之前重置所有页面元素,javascript,Javascript,我有一个函数,可以创建一个随机计划。单击一个按钮,我想重置所有值并重新创建另一个计划。我发现重新加载页面更容易,而不是将所有元素重新初始化为它们的原始值。当我有两个单独的按钮时,一个用于生成时间表,另一个用于重新加载,这非常有效 但是,我需要一个按钮来同时执行这两个操作,但是当我在函数的开头调用reload时,会填充计划并再次自动重新加载 function generateSchedule() { window.location.reload(); for (var i =

我有一个函数,可以创建一个随机计划。单击一个按钮,我想重置所有值并重新创建另一个计划。我发现重新加载页面更容易,而不是将所有元素重新初始化为它们的原始值。当我有两个单独的按钮时,一个用于生成时间表,另一个用于重新加载,这非常有效

但是,我需要一个按钮来同时执行这两个操作,但是当我在函数的开头调用reload时,会填充计划并再次自动重新加载

function generateSchedule() {

    window.location.reload();

    for (var i = 0; exams_scheduled.length < TOTAL_EXAMS; i++){

        var time = randomNumber(3); // 3 exam timeslots per day
        var day = randomNumber(6); // 6 exam days per week
        var week = randomNumber(2); // 2 week period

        var weekday = day + '' + week; 
        var exam_id = "exam-" + time + '' + weekday; 

    if ((exam_count[weekday] < EXAMS_PER_DAY) && (!exams_scheduled.includes(exam_id))) {
        exam_count[weekday] += 1;
        exams_scheduled.push(exam_id);

        document.getElementById(exam_id).className += "exam";   
    }
  }  
}
函数generateSchedule(){
window.location.reload();
对于(var i=0;考试计划。长度<总考试;i++){
var time=randomNumber(3);//每天检查3个时间段
var day=randomNumber(6);//每周6次考试
变量周=随机数(2);//2周周期
var weekday=日+周;
var exam_id=“考试-”+时间+“”+工作日;
如果((考试计数[工作日]<每天考试数)&(!已安排考试。包括(考试id))){
考试计数[工作日]+=1;
考试计划。推送(考试id);
document.getElementById(考试id).className+=“考试”;
}
}  
}
下面是一个代码笔,它在generate函数的开头调用reload。如您所见,计划将生成并再次自动重新加载


有人能提出解决办法吗

我能理解的是,您希望按钮重新加载页面,但在按钮重新加载页面后,它会立即调用新的时间表,对吗? 如果是这样的话,您可以在日程表上使用
窗口。onload
,以便在页面加载后立即自动调用它? 或者也许。。。
setTimeout(callNewSchedule,100)
函数将非常有用 只需设置按钮触发时的延迟。不过,我怀疑这是否可行。因为一旦该页面重新加载,它就会丢失所有以前的数据,
setTimeout
函数将永远不会发生。
因此,
onload
是解决这一问题的最佳选择。

花了一段时间,但似乎效果不错。现在不必重新加载页面即可获得新值

函数getRandomInt(最小值、最大值){ 返回Math.floor(Math.random()*(max-min+1))+min; } 每天的施工检查次数=2次; const TOTAL_考试=5次; var检查天数={ 00: 0, 10: 0, 20: 0, 30: 0, 40: 0, 50: 0, 01: 0, 11: 0, 21: 0, 31: 0, 41: 0, 51: 0 }; var检查_数组=[]; 函数generateSchedule(){ 检查_数组=[]; 变量c=[[0,1,2],[0,1,2,3,4,5],[0,1]; 对于(var i=0;i
表格,
th,
运输署{
边框:1px纯黑;
}

M
T
W
R
F
s
早晨
下午
傍晚
M
T
W
R
F
s
早晨
下午
傍晚

生成 重新加载
打印
提供JSFIDLE.codepen提供的,种类用户您可以检查
窗口.位置.搜索
中的
?重新加载
,然后执行函数删除css类有什么问题(简单循环,
文档.getElementsByClassName()
/
文档.querySelectorAll()
),重置对象中的所有值(简单循环,
用于…
/
Object.keys()
)和清空数组(
.length=0
)?()我正在寻找一种便宜的替代方法
window.onload=generateSchedule();
将其放在
函数generateSchedule()
之后,代码就完成了。希望这对
window.onload=generateSchedule()有所帮助
不会做你认为它会做的事…;)你把它放在最下面了吗?因为如果你把它放在最上面,它根本不会工作:3如果你把它放在最下面,你根本不需要
窗口。onload
<代码>window.onload=generateSchedule()这将立即执行的函数
generateSchedule()
的返回值
undefined
指定为
onload
处理程序-因此它完全错误。哦,是的。。。呵呵。。。我猜我几个小时前得到的信息是错误的关于加载页眉和页脚的事情。。。谢谢你在我用它之前把它清理干净。