javascript - Javascript不会在加载时启动脚本
问题描述
我的脚本在加载时出现问题。它昨天才起作用,但我将代码更改为更紧凑,现在它不起作用。在此错误之前,它在不使用onload
in 的情况下工作正常body
。
在更改之前,它将在li
元素上显示当前和未来 6 天,但现在它只是一个空白框。
function setweek() {
var days["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
var elemen["first", "second", "third", "fourth", "fifth", "sixth", "seventh"]
var day;
var dayofmonth = 0;
var plannedweek = 0;
var d = new Date();
var month = d.getMonth();
for (var i = 0; i < 7; i++) {
day = days[d.getDay() + i];
dayofmonth = d.getDate() + i;
check(i);
document.getElementById(elemen[i]).innerHTML = day + '<br>' + dayofmonth + "." + month;
}
}
function check(a) {
var max = 31;
if (d.getMonth() + l == 1) {
max = 28;
}
if (d.getMonth() + l == 3) {
max = 30;
}
if (d.getMonth() + l == 5) {
max = 30;
}
if (d.getMonth() + l == 8) {
max = 30;
}
if (d.getMonth() + l == 10) {
max = 30;
}
if (d.getDate() + (a + (plannedweek * 7)) > max) {
plannedweek = 0;
month++;
if (d.getMonth() + month > 12) {
month = 0;
}
}
}
<body onload="setweek();">
<section id="meal_plan_section">
<label for="weekly_meal_plan">Weekly meal plan:</label><br>
<ul class="list-group" id="weekly_meal_plan">
<li id="first" class="list-group-item list-group-item-action"></li>
<li id="second" class="list-group-item list-group-item-action"></li>
<li id="third" class="list-group-item list-group-item-action"></li>
<li id="fourth" class="list-group-item list-group-item-action"></li>
<li id="fifth" class="list-group-item list-group-item-action"></li>
<li id="sixth" class="list-group-item list-group-item-action"></li>
<li id="seventh" class="list-group-item list-group-item-action"></li>
</ul>
</section>
</body>
解决方案
几个问题
- 错别字(缺少
=
天数和元素) - 范围(var d 在检查中不可见),setweek 不为 onload 处理程序所知
l
没有定义的
这里我使用了一个事件处理程序
var d = new Date();
function setweek() {
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
var elemen = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh"];
var day;
var dayofmonth = 0;
var month = d.getMonth() +1; // JS months start a 0
for (var i = 0; i < 7; i++) {
day = days[d.getDay() + i];
dayofmonth = d.getDate() + i;
document.getElementById(elemen[i]).innerHTML = day + '<br>' + dayofmonth + "." + month;
}
}
window.addEventListener("load", setweek)
// if you need the last day of the month do this
const lastDay = date => new Date(date.getFullYear(),date.getMonth()+1,0).getDate();
console.log(lastDay(d))
<section id="meal_plan_section">
<label for="weekly_meal_plan">Weekly meal plan:</label><br>
<ul class="list-group" id="weekly_meal_plan">
<li id="first" class="list-group-item list-group-item-action"></li>
<li id="second" class="list-group-item list-group-item-action"></li>
<li id="third" class="list-group-item list-group-item-action"></li>
<li id="fourth" class="list-group-item list-group-item-action"></li>
<li id="fifth" class="list-group-item list-group-item-action"></li>
<li id="sixth" class="list-group-item list-group-item-action"></li>
<li id="seventh" class="list-group-item list-group-item-action"></li>
</ul>
<br>
注意:如果您需要每月的最后一天,请执行此操作
const lastDay = date => new Date(date.getFullYear(),date.getMonth()+1,0).getDate();
我想,你想要这个
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
const elemen = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh"];
function setweek() {
let d = new Date();
const start = d.getDate();
for (let i = 0; i < 7; i++) {
d.setDate(start + i)
document.getElementById(elemen[i]).innerHTML = days[d.getDay()] + '<br>' + d.getDate() + "." + (d.getMonth() + 1);
}
}
window.addEventListener("load", setweek)
<section id="meal_plan_section">
<label for="weekly_meal_plan">Weekly meal plan:</label><br>
<ul class="list-group" id="weekly_meal_plan">
<li id="first" class="list-group-item list-group-item-action"></li>
<li id="second" class="list-group-item list-group-item-action"></li>
<li id="third" class="list-group-item list-group-item-action"></li>
<li id="fourth" class="list-group-item list-group-item-action"></li>
<li id="fifth" class="list-group-item list-group-item-action"></li>
<li id="sixth" class="list-group-item list-group-item-action"></li>
<li id="seventh" class="list-group-item list-group-item-action"></li>
</ul>
<br>
推荐阅读
- r - 将两个块合并为一个
- react-native-ui-kitten - 无法启动 UI 小猫
- r - R包“RQGIS3”找不到proj.db
- php - 使用 Fat Free Framework 打印换行符(换行符)
- angular - NgRx - 状态改变不当
- python - 希望解决 1970 错误的 Pandas 中的日期错误
- r - 在另一个data.frame(data.table)中查找一个data.frame的对应日期
- vba - 没有附件时在特定邮件上显示回形针图标
- java - 运行 mvn 命令时如何忽略 jvm.config?
- python - 为什么这个程序没有结束?如果我不输入正确的数字,游戏将永远进行