使用setInterval和For Loop更新textNode。某事不起作用

我正在尝试从w3资源中解决此问题。 问题:编写一个JavaScript程序来查找1月1日是2014年至2050年之间的星期日。 我尝试解决它,并附上了下面的代码。我可以正确记录答案,但是当我尝试仅使用setInterval更新2043年的textNodes.data时,但是我希望它在每100毫秒记录的所有年份(答案)中都进行更改。 我猜想在一起有一个for循环和setInterval,因此这个问题虽然正确地记录了年份,但问题仍然是id =“ target”的目标DOM显示

console.log('January 1 Sunday for the following years:');
let getLeaps=(id)=>{

  let target =document.getElementById(id);

  let textNode =target.childNodes[0];

  let text= textNode.data ;

  let dates=new Date();

  for(x=2014;x<=2050;x++){
        dates.setfullYear(x,01,01);
        let day = dates.getDay();
       
      if (day==0){
            let year0 = dates.getFullYear()
            
            text=year0;
            console.log(text);

            textNode.data=text;
            console.log(textNode.data);
            
            
          
        
       }

        
    
  }



}

getLeaps('target');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="target"> </p>
    
</body>
</html>

iCMS 回答:使用setInterval和For Loop更新textNode。某事不起作用

我不会为您解决...

一些提示:

  1. 检查setFullYear文档(一月不是“ 1”)
  2. 准备年份
  3. 以设置的间隔(setInterval() clearInterval())打印它们
,

如前一个答案所述,一月不是函数setFullYear中的月份“ 1”,而是月份0,因此您需要在代码中进行更改以获取正确的结果。您还忘记了将最后的结果附加到文本数据中,因此您的代码将只覆盖textNode.data中的值,以发现符合要求的最后一年,因此我将其更改为使用+=

在追加新年之前清除textNode.data的值也很重要,因为如果循环运行函数getLeaps(),它将把新数据追加到textNode中的先前数据,这样做这个:

2017 2023 2034 2040 2045 2017 2023 2034 2040 2045...

let getLeaps = (id) => {

  let target = document.getElementById(id);

  let textNode = target.childNodes[0];

  let text = textNode.data;

  textNode.data = "";

  let dates = new Date();

  for (x = 2014; x <= 2050; x++) {
    dates.setFullYear(x,01);
    let day = dates.getDay();

    if (day == 0) {
      let year0 = dates.getFullYear()

      text = year0;
      console.log(text);

      textNode.data += text + ' ';
      console.log(textNode.data);
    }
  }
}

getLeaps('target');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="target"> </p>
    
</body>
</html>

本文链接:https://www.f2er.com/2163030.html

大家都在问