1 回答
TA贡献1827条经验 获得超4个赞
首先,您的函数“getWeekNumber()”在调用时需要一个参数 d,但是当您在输入按钮上单击时调用它时,您没有给它这样的参数。我认为,您应该为单击输入按钮时设置一个事件侦听器,然后您应该从那里调用 getWeekNumber() 函数并将其传递给“new Date()”作为参数 d,因此它看起来像在我添加事件侦听器的代码下面。
您还从内部调用函数本身,但在多余的 return 语句之后这样做。相反,您应该得到结果 weekNo 并将某些 div 的 innerHTML 设置为它,就像我所做的那样。我认为您不应该尝试填写输入框,因为这似乎不符合常规。我将其更改为 div 以使过程更简单更容易:
let get_week_button = document.getElementById("get_week");
get_week_button.addEventListener("click", function() {
getWeekNumber(new Date());
});
function getWeekNumber(d) {
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
var weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
document.getElementById("week").value = weekNo;
}
<td>WEEK: </td>
<td>
<input type="text" value= "" style= "width: 230px; padding-left: 3px" id="week" name="week">
</td>
</tr>
<input id="get_week" type="button" value="Get Week">
添加回答
举报