单击按钮获取周数

我有一个函数,我想获取今天日期的周数,但无法在单击按钮时在文本框中打印值。我是 javascript 新手,我已经调试了好几个星期了。请帮忙


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);

    return [d.getUTCFullYear(), weekNo];

    document.getElementById("week").value = getWeekNumber(new Date());

    

}

<td>WEEK: </td>

      <td><input type="text" value= "" style= "width: 230px; padding-left: 3px" id="week" name="week"></td>

          <input type="button" value="Get Week" onclick= "getWeekNumber()">


守着星空守着你
浏览 131回答 1
1回答

GCT1015

首先,您的函数“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() {&nbsp; getWeekNumber(new Date());});function getWeekNumber(d) {&nbsp; d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));&nbsp; d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));&nbsp; var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));&nbsp; var weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);&nbsp; document.getElementById("week").value = weekNo;}<td>WEEK: </td><td>&nbsp; <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">
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript