简体   繁体   English

JavaScript仅显示最后结果

[英]JavaScript showing only last result

I am trying to print the years in which Sunday comes in 1 st January. 我试图打印1月1 星期日到来的年份。 The problem is that it's only showing the last result. 问题是它只显示最后的结果。

 function sun() { var sunday = new Date(); var year; for (year = "2014"; year <= 2050; year++) { var date = new Date(year, 0, 1); if (date.getDay() == 0) document.getElementById('demo').innerHTML = "First Jan being sunday on year =" + year + "<br>"; } } 
 <input type="submit" id="submit" onclick="sun()"> 

将+添加到表达式中

 document.getElementById('demo').innerHTML += "First Jan being sunday on year ="+year+"<br>"; 
function sun(){

var sunday = new Date();
var year;

for (year = "2014"; year <= 2050; year++){
    var date = new Date(year,0,1);
    if (date.getDay()==0)
    //you are overwriting the content of 'demo' each time, changed to "+=" so it adds new HTML each time
    document.getElementById('demo').innerHTML += "First Jan being sunday on year ="+year+"<br>"; 
}

} }

The values are getting replaced in each iteration of the loop. 在循环的每次迭代中都会替换这些值。

Concatenating the result is going to help. 连接结果会有所帮助。

Use the operator + in the expression: 在表达式中使用operator +:

document.getElementById('demo').innerHTML += "First Jan being sunday on year ="+year+"<br>"; 

You should put "January 1st will be on Sunday in:" statically inside the '#demo' div , then concatenate the years by using += instead of = , eg : 你应该把“1月1日将在星期日:”静态的“#demo”里div ,然后使用串连多年+=代替=

 function sun() { for (let year = 2014; year <= 2050; year++) { if ((new Date(year, 0, 1)).getDay() == 0) { document.getElementById('demo').innerHTML += " " + year; } } } 
 <input type="submit" id="submit" onclick="sun()"> <div id="demo">January 1st will be on Sunday in:</div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM