JavaScript TypeError: Die Eigenschaft 'style' von null kann nicht gelesen werden

8

Ich habe JavaScript-Code und unterhalb der Zeile hat ein Problem.

%Vor%

FEHLER

%Vor%

Meine div-Tag-Details sind:

%Vor%

Vervollständige JavaScript:

%Vor%

Kann mir jemand helfen?

    
JK - ASP 07.10.2013, 21:44
quelle

3 Antworten

38
___ antwort19235379 ___

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.

  1. Sie führen das Skript zu früh aus, bevor das Dokument geladen wurde und somit das Element Noite nicht gefunden werden kann.

  2. 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:

  1. Das Skript befindet sich im Hauptteil, aber nach dem Inhalt, auf den es verweist.
  2. Ich habe if -Deklarationen zu Ihren Variablen hinzugefügt (eine gute Gewohnheit, die Sie immer verwenden).
  3. Wenn die var Anweisung in ein if / else umcodiert wird, ist das viel effizienter und dokumentiert mehr, was Sie tun.
  4. Ich habe geschweifte Klammern für jede if -Anweisung hinzugefügt, so dass absolut klar ist, welche Anweisungen Teil von if sind und welche nicht.
  5. Ich habe das if/else -Tag, das Sie eingefügt haben, ordnungsgemäß geschlossen.
  6. Ich habe </dd> in style.display = ''; geändert.
  7. Ich habe am Ende jeder Anweisung Semikolons hinzugefügt (eine weitere gute Gewohnheit, der ich folgen kann).

Der Code:

%Vor%     
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ qstntxt ___

Ich habe JavaScript-Code und unterhalb der Zeile hat ein Problem.

%Vor%

FEHLER

%Vor%

Meine div-Tag-Details sind:

%Vor%

Vervollständige JavaScript:

%Vor%

Kann mir jemand helfen?

    
___ answer36930706 ___

Das passiert, weil style.display = 'block'; den vorhandenen Code überschreiben würde. Platzieren Sie daher Ihre %code% vor Ihrem JavaScript-Code. z.B.:

CSS:

%Vor%

In Ihrer HTML-Datei

%Vor%

Ich hoffe, das war hilfreich

    
___ answer49316222 ___

Ich habe das gleiche Problem, die Situation ist, muss ich Flash-Spiel durch Einbetten Tag und H5-Spiel von iframe herunterladen, ich brauche eine Ladebox dort, wenn der Flash oder H5-Download getan, lassen Sie die Ladebox keine anzeigen. Nun, der Flash funktioniert gut, aber wenn Dinge zu Iframe gehen, kann ich die Eigenschaft 'style' von null nicht finden, also füge ich eine Uhr hinzu, und es funktioniert

%Vor%     
___ qstnhdr ___ JavaScript TypeError: Die Eigenschaft 'style' von null kann nicht gelesen werden ___
jfriend00 07.10.2013, 21:47
quelle
3

Das passiert, weil document.write den vorhandenen Code überschreiben würde. Platzieren Sie daher Ihre div vor Ihrem JavaScript-Code. z.B.:

CSS:

%Vor%

In Ihrer HTML-Datei

%Vor%

Ich hoffe, das war hilfreich

    
jfindley 29.04.2016 06:06
quelle
0

Ich habe das gleiche Problem, die Situation ist, muss ich Flash-Spiel durch Einbetten Tag und H5-Spiel von iframe herunterladen, ich brauche eine Ladebox dort, wenn der Flash oder H5-Download getan, lassen Sie die Ladebox keine anzeigen. Nun, der Flash funktioniert gut, aber wenn Dinge zu Iframe gehen, kann ich die Eigenschaft 'style' von null nicht finden, also füge ich eine Uhr hinzu, und es funktioniert

%Vor%     
Anne Lee 16.03.2018 08:33
quelle

Tags und Links