In Ihrem Skript diesen Teil:
%Vor% muss null
zurückgeben und Sie versuchen auch, die Eigenschaft display
auf einen ungültigen Wert zu setzen. Es gibt einige mögliche Gründe dafür, dass dieser erste Teil null
ist.
-
Sie führen das Skript zu früh aus, bevor das Dokument geladen wurde und somit das Element
Noite
nicht gefunden werden kann. -
Es gibt kein
Noite
-Element in Ihrem HTML.
Ich sollte darauf hinweisen, dass Ihre Verwendung von document.write()
in diesem Fall wahrscheinlich ein Problem bedeutet. Wenn das Dokument bereits geladen wurde, löscht ein neues document.write()
den alten Inhalt und startet ein neues Dokument, sodass kein Noite
-Eintrag gefunden wird.
Wenn Ihr Dokument noch nicht geladen wurde und Sie also document.write()
inline ausführen, um HTML zum aktuellen Dokument hinzuzufügen, wurde Ihr Dokument noch nicht vollständig geladen. Das ist wahrscheinlich der Grund, warum es den% nicht gefunden hat. co_de% item.
Die Lösung ist wahrscheinlich, diesen Teil Ihres Skripts ganz am Ende Ihres Dokuments zu platzieren, also alles, bevor es bereits geladen wurde. Also bewege das zum Ende deines Körpers:
%Vor% Und stellen Sie sicher, dass es keine Noite
-Anweisungen in Javascript gibt, nachdem das Dokument geladen wurde (weil sie das vorherige Dokument löschen und ein neues beginnen).
Außerdem macht es mir keinen Sinn, die Eigenschaft document.write()
auf display
zu setzen. Die gültigen Optionen dafür sind "display"
, "block"
, "inline"
, "none"
, etc ... Mir ist keine Option namens "table"
für diese Stileigenschaft bekannt. Siehe hier für gültige Optionen für die Eigenschaft "display"
.
Sie können den Fixcode hier in dieser Demo sehen: Ссылка . Dieses jsFiddle ist so konfiguriert, dass das Javascript am Ende des Dokumententexts platziert wird, damit es nach dem Laden des Dokuments ausgeführt wird.
P.S. Ich möchte darauf hinweisen, dass Ihr Fehlen von geschweiften Klammern für Ihre display
-Anweisungen und die Aufnahme mehrerer Anweisungen in dieselbe Zeile Ihren Code sehr irreführend und unklar macht.
Mir fällt es wirklich schwer herauszufinden, was du verlangst, aber hier ist eine aufgeräumte Version deines Codes, die funktioniert, die du auch hier sehen kannst: Ссылка . Hier ist eine Liste der Änderungen, die ich vorgenommen habe:
- Das Skript befindet sich im Hauptteil, aber nach dem Inhalt, auf den es verweist.
- Ich habe
if
-Deklarationen zu Ihren Variablen hinzugefügt (eine gute Gewohnheit, die Sie immer verwenden). - Wenn die
var
Anweisung in ein if / else umcodiert wird, ist das viel effizienter und dokumentiert mehr, was Sie tun. - Ich habe geschweifte Klammern für jede
if
-Anweisung hinzugefügt, so dass absolut klar ist, welche Anweisungen Teil vonif
sind und welche nicht. - Ich habe das
if/else
-Tag, das Sie eingefügt haben, ordnungsgemäß geschlossen. - Ich habe
</dd>
instyle.display = '';
geändert. - Ich habe am Ende jeder Anweisung Semikolons hinzugefügt (eine weitere gute Gewohnheit, der ich folgen kann).
Der Code:
%Vor%