Tykota
Tykota

Reputation: 13

Having issue with setInterval

I am having an issue with the setInterval() function in javascript where it will print to my page once and it will not continue to do so. I was wondering if maybe this is a browser issue or something i did wrong.

function printTime() {
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    document.write(hours + ":" + minutes + ":" + seconds + "<br/>");
}

setInterval("printTime()", 1000);

Upvotes: 0

Views: 42

Answers (1)

mplungjan
mplungjan

Reputation: 177685

Apart from the poor practice of using "functionName()" instead of just functionName, the code will never work if the interval is beyond the page loading.

document.write will wipe the page after load

Here is a better solution:

<div id="time"></div>
<script>
function pad(str) { return ("0"+str).slice(-2)}
function printTime() {
  var now = new Date();
  var hours = now.getHours();
  var minutes = now.getMinutes();
  var seconds = now.getSeconds();
  document.getElementById("time").innerHTML+=pad(hours) + ":" + pad(minutes) + ":" + pad(seconds) + "<br/>";
}

setInterval(printTime, 1000);
</script>

Upvotes: 3

Related Questions