JS und jQuery können HTML-Elemente nicht erkennen und melden Undefiniert
Beim Versuch, einen Untertitel-Player mit JavaScript und jQuery zu erstellen, kann es vorkommen, dass Sie auf Folgendes stoßen: Ein Problem, bei dem der Code die gewünschten HTML-Elemente nicht finden kann. Beim Versuch, den Wert oder HTML dieser Elemente anzuzeigen, ist das zurückgegebene Ergebnis häufig „undefiniert“.
Dieses verwirrende Verhalten ergibt sich aus der Reihenfolge, in der Ihr Skript und HTML-Code verarbeitet werden. Konkret wird das Skriptelement geladen und ausgeführt, bevor die HTML-Elemente, auf die es abzielt, erstellt werden. Hier ist eine Aufschlüsselung des Prozesses:
- Der Browser analysiert den HTML-Code und erstellt das und Elemente.
- Es trifft auf das Skriptelement, das jQuery lädt, und hält an, um es abzurufen und auszuführen.
- Nachdem jQuery geladen wurde, wird der Parser fortgesetzt.
- Das Skriptelement für Ihr JS Code wird gefunden und der Parser hält an, um ihn abzurufen und auszuführen.
- An diesem Punkt sucht Ihr Skript nach div-Elementen, aber es sind noch keine vorhanden, da der HTML-Code noch analysiert wird.
- Der Browser Schließt das Parsen ab, rendert die Seite und erstellt die div-Elemente.
Problem lösen:
Um dieses Problem zu lösen, haben Sie mehrere Möglichkeiten:
-
Skript-Tags am Ende platzieren: Verschieben Sie die Skriptelemente direkt vor das Tag, um sicherzustellen, dass alle Elemente vorhanden sind, wenn der Code ausgeführt wird. Dies ist im Allgemeinen die einfachste Lösung.
-
Verwenden Sie die Ready-Funktion von jQuery: Nutzen Sie die Ready-Funktion von jQuery, mit der Sie Code erst ausführen können, wenn alle HTML-Elemente geladen und für den Zugriff bereit sind.
-
Verwenden Sie das Defer-Attribut: Fügen Sie das Defer-Attribut zum Skript-Tag hinzu. Dies zeigt dem Browser an, dass das Skript ausgeführt werden soll, nachdem die Analyse der Seite abgeschlossen ist. Beachten Sie jedoch, dass dies möglicherweise nicht in allen Browsern unterstützt wird.
Das obige ist der detaillierte Inhalt vonWarum erkennen JS und jQuery HTML-Elemente nicht und melden Undefiniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!