2012-04-03 7 views
0

Ich lade ein Stück HTML über Ajax. Sobald die Ladung abgeschlossen ist, möchte ich die Antwort nach einem div einer bestimmten ID suchen. Grundsätzlich würde ich gerne eine response.getElementById machen.JS How to GetElementById auf einem HTML-Snippet

Gibt es eine Möglichkeit, dies zu tun?

+0

Wie bekommst du dein Snippet? – rekire

+0

@rekire Jetzt mit einer jQuery.get -Methode. – silkAdmin

Antwort

1

Sie können dies tun:

$.get({ 
    url: url, 
    success: function(response) { 
     result = $(response).find("#result"); 
     if (result) { 
      // found 
     } else { 
      //not found 
     } 
    } 
}); 

diese .find() verwendet für die id (#) von result im response

+0

Ja, danke, obwohl ich jquery in diesem Beispiel verwende, habe ich hüpfte, um einen nicht Jquery Weg zu finden, da dieser Code in eine andere Bibliothek übertragen werden könnte. – silkAdmin

+0

@silkAdmin die Quelle für 'find()' ist hier -> http://james.padolsey.com/jquery/#v=git&fn=jQuery.find – ManseUK

0

Ich würde die Methode load() über jQuery vorschlagen:

$(function(){ 
    $('#container_id').load('my_file.html #id_of_div'); 
}); 

Weitere Dokumentation: jQuery load()

0

, die an dem aja (x) Anfrage abhängt. Wenn Sie XML laden, können Sie die getElementById-Methode des Dokuments xhr.responseXML direkt verwenden.

Wenn nicht, müssen Sie das HTML-Snippet analysieren. Dies könnte mit einem DOMParser, dem innerHTML eines Elements oder mit der Parserfunktion Ihrer Lieblingsbibliothek geschehen.

0

U fügen Sie die HTML-Antwort als ein div oder Rahmen können zu suchen, setze es für eine Weile unsichtbar. dann können Sie normale getElementById verwenden. Schneller geht es mit jQuery.

--jQuery--
Lassen Sie einen geöffneten <div id=AjaxResponse> </div> dann auf Erfolg hinzufügen $("#AjaxResponse").html(data) dann kann u normalen getElementById() oder $("#AjaxResponse#myId") verwenden, aber vergessen Sie nicht, unsichtbar zu setzen, oder enabled = "false" die oben div