2017-11-22 1 views
0

Also hier ist mein SkriptScript undefined druckt, wenn ich will nur die Zeit zeigen

function updateClock() { 
 
    var now = new Date(); // current date 
 
    var time = now.getHours() + ':' + now.getMinutes(); // again, you get the idea 
 
    // a cleaner way than string concatenation 
 
    // set the content of the element with the ID time to the formatted string 
 
    document.getElementById('nav-time').innerHTML = time; 
 
    // call this function again in 1000ms 
 
    setTimeout(updateClock, 1000); 
 
}
<li><span id="nav-time">Time 
 
<script>document.write(updateClock());</script></span></li> 
 
<span class="divider"> | </span>

Aber wenn die Webseite geladen wird, für die erste Sekunde er angezeigt wird, hat es immer undefined bei der Ende der Zeit Zeichenfolge wie 12:12undefined.

+0

Wenn Sie nur ein paar Minuten wollen Sie ein viel länger hier Intervall als 1 Sekunde nutzen können. –

Antwort

1

Sie müssen Ihre Funktion nicht im document.write aufrufen. Sie können das Skript einfach Ihrer Seite hinzufügen. Rufen Sie die setInterval (Ich möchte die Zeit jede Sekunde, nicht setTimeout) außerhalb der Funktion selbst. Greifen Sie auch über document.getElementById auf das Element zu und speichern Sie es in einer Variablen, um mehr Leistung hinzuzufügen.

const el = document.getElementById('nav-time'); 
 

 
function updateClock() { 
 
    var now = new Date(); 
 
    var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds(); 
 
     
 
    el.innerHTML = time;  
 
} 
 

 
setInterval(updateClock, 1000);
<li><span id="nav-time">Time 
 
<span class="divider"> | </span>

+0

Vielleicht ein längeres Intervall als 1? –

+0

Entschuldigung. Vergaß '000' Teil –

Verwandte Themen