1

I don't know where is the problem point... (T.T)

script is

<script type="text/javascript">
function printTime(arg) {
    var mydate = new Date();
    document.getElementById(arg).innerHTML = mydate;
}
function startTimer(arg) {
    setInterval(printTime(arg), 1000);
}
</script>

HTML is

<body onload="startTimer('timer')">
    <h1 id="timer">
    </h1>
</body>
Minime
  • 13
  • 2

1 Answers1

0

You are only executing the function initially and setting the returned value as an argument instead use a callback function.

<body onload="startTimer('timer')">
  <h1 id="timer">
    </h1>
</body>


<script type="text/javascript">
  function printTime(arg) {
    var mydate = new Date();
    document.getElementById(arg).innerHTML = mydate;
  }

  function startTimer(arg) {
    setInterval(function() {
      printTime(arg)
    }, 1000);
  }
</script>


Or bind the argument as this context using Function#bind method and within the function you can get value from this.

<body onload="startTimer('timer')">
  <h1 id="timer">
    </h1>
</body>


<script type="text/javascript">
  function printTime() {
    var mydate = new Date();
    document.getElementById(this).innerHTML = mydate;
  }

  function startTimer(arg) {
    setInterval(printTime.bind(arg), 1000);
  }
</script>
Pranav C Balan
  • 106,305
  • 21
  • 136
  • 157