为了账号安全,请及时绑定邮箱和手机立即绑定

单击按钮获取周数

单击按钮获取周数

守着星空守着你 2021-06-28 17:59:25
我有一个函数,我想获取今天日期的周数,但无法在单击按钮时在文本框中打印值。我是 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()">
查看完整描述

1 回答

?
GCT1015

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">


查看完整回答
反对 回复 2021-07-01
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信