2010-11-19 15 views
0

Im Grunde habe ich ein div, in das ich Inhalt mit innerHTML einfüge. Ein eingefügtes HTML-Segment ist:Ändern von innerHTML eines Elements, das mit innerHTML erstellt wurde

Dies ist ein Timer, der mit einem setTimeout inkrementieren sollte. Später habe ich die folgende Funktion rufen Sie den Timer-Block zu ändern:

document.getElementById("timer").innerHTML = output; 

Wenn die mit Firebug innerHTML- Eigenschaft überprüfen oder eine Warnung, die innerHTML- des Spans Elements erhöht wird (zB wird es sagen: „00.00.10 : 6 "oder" 00: 01: 01: 4 "). Die Seite spiegelt jedoch nicht die Änderungen wider. Der Browser zeigt weiterhin 00: 00: 00: 0 an.

Ich habe versucht, die Spanne direkt auf der Seite im Gegensatz zu durch Ändern der div mit innerHTML, und nur dann funktioniert es. Gibt es da eh etwas um es mit innerHTML am div zu arbeiten?

EDIT: Die Seite ist ----- Versuchen Sie es mit Firebug oder die Chrome-Konsole, um die Folge zu überprüfen:

document.getElementById('bunny-timer').innerHTML 

EDIT 2: URL entfernt.

+0

funktioniert gut für mich nur mit innerHTML mit FF 3.6 – re5et

Antwort

1

Ohne den Code zu sehen, meine beste Vermutung ist, dass Sie versehentlich doppelte IDs erstellen, und das Element, das Sie sehen, ist anders als das, das Sie gerade überprüfen.

+0

Nach Firebug habe ich keine doppelten IDs auf der Seite. – Steve

+0

Entschuldigung, Sie hatten Recht. Das andere Element mit der ID war versteckt, also konnte ich es nicht sehen. – Steve

0

Schau dir das an: http://plugins.jquery.com/project/timers. Da Sie jQuery bereits ziemlich oft verwenden, warum nicht mit ihren Timer-Funktionen spielen? Sie scheinen ziemlich gut gemacht zu sein.

+0

Danke, das sieht definitiv nützlich aus, aber ich denke nicht, dass der Timer das eigentliche Problem ist. Ich denke, es hat etwas damit zu tun, dass das DOM das span-Element oder etwas nicht erkennt. – Steve

+0

was deutet darauf hin, dass er überhaupt jQuery verwendet? Wenn er es überhaupt benutzen würde, würde ich als erstes gehen. Ich stimme zu, dass es eine gute Idee ist –