2016-07-05 5 views
0

Ich habe eine main.html-Datei, die gut funktioniert.Javascript - verwenden Sie andere html-Datei spezifische Daten

var elements = document.getElementsByClassName("quest")
<a class="quest">Quest 1</a> 
 
<a class="quest">Quest 2</a> 
 
<a class="quest">Quest 3</a>

aber ich es trennen möchte. Die Datei main.html enthält also noch das Javascript, aber eine andere Datei data.html enthält den HTML-Teil des Codes. Ich würde eine Option bevorzugen mit reinem Javascript (keine jQuery usw.). Vielen Dank.

+1

die keinen Sinn macht. Sie können das JS in eine externe Javascript-Datei extrahieren, aber warum sollte JS selbst in einer HTML-Datei bleiben? Können Sie den Anwendungsfall näher erläutern? – mplungjan

+0

Beide Dateien haben auch andere Inhalte. Das ist der Grund, warum ich sie getrennt brauche. –

+0

Sie möchten also im Wesentlichen in der Datei data.html ajax? Warum ist jQuery nicht erlaubt, es wird alles vereinfachen, einschließlich der Event-Delegierung für Ihre Navigation benötigt – mplungjan

Antwort

0

So müssen Sie dynamisch Teil der HTML-Seite mit JavaScript (natives JavaScript) laden.

Sie können jQuery für diesen Zweck verwenden: $("#htmlContainer").load("data.html");

Oder Sie können jQuery.load mit nativer JS ersetzen (von hier https://stackoverflow.com/a/32144585/2376676):

function load(target, url) { 
    var r = new XMLHttpRequest(); 
    r.open("GET", url, true); 
    r.onreadystatechange = function() { 
    if (r.readyState != 4 || r.status != 200) return; 
    target.innerHTML = r.responseText; 
    }; 
    r.send(); 
} 

load(document.getElementById('container'), 'data.htm'); 
+0

Vielen Dank, aber ich habe versucht, die Mutter und es hat nicht funktioniert. Ich habe einen div class = "container" erstellt, aber es ist nichts passiert. Auch die var-Elemente enthalten nicht die Variablen, was es soll. /// Zuerst hatte es ein anderes Problem mit der URL: data.html befindet sich nicht in einer "http: \" Position (Ursache ist auf meinem Computer in einem Ordner). Allerdings habe ich das mit Chrome behoben --allow-file-access-from-files –

+0

Sie sollten div id = "container" erstellen –

+0

ja ich schrieb ID und es funktioniert nicht. (nur Zauberfehler in meinem Kommentar) –

Verwandte Themen