为什么每次按下按钮后页面都不会更新

时间:2012-11-24 10:40:05

标签: javascript html

我有这个代码,它应该按下每个按钮产生一个随机日期并更新文本。但每次按下按钮都没有任何反应(当然是第一次按下之后)。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to display what day it is today.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction()
{
var x;
var d=new Date().getDay();
switch (d)
  {
  case 0:
    x="Today it's Sunday";
    break;
  case 1:
    x="Today it's Monday";
    break;
  case 2:
    x="Today it's Tuesday";
    break;
  case 3:
    x="Today it's Wednesday";
    break;
  case 4:
    x="Today it's Thursday";
    break;
  case 5:
    x="Today it's Friday";
    break;
  case 6:
    x="Today it's Saturday";
    break;
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

您没有生成随机日期。 Date构造函数的作用是返回当前日期。这就是为什么每次按下时,日期都保持不变 如果您想要一个随机日期,您可以使用此函数返回间隔之间的随机日期:

function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()))
}

并使用更改行:

var d=new Date().getDay(); 

var d = randomDate(new Date(2012, 0, 1), new Date());

注意 random date函数取自:Elegant method to generate array of random dates within two dates

答案 1 :(得分:2)

我为你做了jsFiddle。就当前日期而言,这绝对适用于我。如果您想要一个随机数,则必须使用此代码生成这样的数字

function getRandomInt (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

其中minmax是您想要的范围,即0到6.我已将此添加到jsFiddle示例中。