Holen Sie sich DOM-element von AJAX-response mit JavaScript

Habe ich ein AJAX-request, der gibt ein Stück HTML als Antwort, dass ist eingefügt in ein div. Wie kann ich JavaScript verwenden, um ein element von DOM aus, dass die AJAX-Antwort HTML? Ich habe JavaScript am Ende des HTML-Antwort zurückgegeben div, sondern getElementById null zurück, offenbar, weil der DOM noch nicht erstellt worden, und ich kann kein Fenster.onload-wie auf einer normalen web-Seite. Sehen eample unten. Und diese werden in JavaScript - keine Bibliotheken.

<div class="page-content extractAjaxContent" id="tableContent_AJAX">
<div id="name">Biff</div>
    <html:form action="/variableCostStatusPost" method="post">
     ....some JSP to produce HTML
    </html:form>
<script>console.log("Name is " + document.getElementById('name'));</script>
</div>
  • yourdiv.getElementById oder anderen dom-selector-Funktion?
  • Sobald es einfügen in ein DIV, Sie können gewöhnliche DOM-Suche Funktionen wie div.getElementById() zu Holen Elemente.
  • Ich fügte hinzu, ein Beispiel um die Frage, unheld.
  • wie ist das, was du sagst, unterscheidet sich von Dokument.getElementById()?
  • Im Fall von getElementById() gibt es keinen Unterschied zwischen der Anwendung auf document oder div, da IDs eindeutig sein müssen. Aber wenn Sie andere Funktionen nutzen, wie getElementsByClassName(), die Anwendung auf div beschränkt die Suche auf, dass DIV.
  • Alles, was hängt von der Antwort auf AJAX getan werden muss, um in seiner onreadystatechange - handler-Funktion, die nicht in der top-level-Skript-code.
  • In deinem Beispiel-code, welche div bist du einfügen des ajax-response-Daten in? ist es tableContent_AJAX? In deinem Beispiel-code, wie es scheint, Konsole.log-Anweisung ausgeführt, bevor die Antwort eingefügt, in der div. Ihr Anruf zu dokumentieren.getElementById ("name") werden wieder einige Wert nur NACH der Reaktion Hinzugefügt, um das div, so wie Barmar sagte, es sollte getan werden onreadystatechange (d.h. ajax-success-callback-Funktion).
  • Es gibt eine Reihe von Seiten mit AJAX in der app. Es ist ein AJAX-request/response-Funktion. Wenn ich Schreibe das extra-Funktion in der Erfolgs-Methode, wie habe ich es nur laufen, in den paar Fällen benötigt?
  • Also, wenn ich es Recht bekommen, Sie haben 1 gemeinsamen ajax-Funktion, die Sie aufrufen, um Anrufe zu tätigen, um unterschiedliche urls, und Sie müssen führen Sie Ihre spezifischen code getElementById nur für einige Fälle. Und Sie einfügen, wird die Antwort in ein div für ALLE Fälle, und nicht nur einigen wenigen Fällen. Ist das richtig? Ich denke, Sie müssen, um zu wissen, die Antwort, wenn Sie möchten, führen Sie diese neue Funktion, oder Sie können Ihre Funktion akzeptiert eine callback-Funktion (optional), und ausgeführt, dass anstelle der regulären Rückruf. Nun übergeben Sie einen benutzerdefinierten Rückruf von Bereichen, in denen Sie benötigen, um ausführen Ihre speziellen Fall.

InformationsquelleAutor Andrew Koper | 2013-09-27
Schreibe einen Kommentar