2012-04-15 12 views
1

So habe ich ein Formular, das über Ajax an ein Python-Skript gesendet wird. Das Python-Skript gibt eine ganze HTML-Seite aus, die den Inhaltstyp doctype und all das enthält.jQuery html (Text) Parsing über Ajax

Jetzt muss ich einen Teil des Antworttextes aus dem Python-Skript, ein div-Element, in ein div auf der aktuellen Seite einfügen.

Wie analysiere ich den Antworttext und entferne alle unnötigen Dschunken wie Doctype und Header?

Danke.

+1

Ist es möglich, das Python-Skript so zu ändern, dass es nur das gewünschte Bit erzeugt? Das könnte viel effizienter sein als im Browser. – jimw

+0

Ja, ich verstehe, was du sagst. Aber leider nicht, weil die Python-Datei auch direkt angezeigt werden muss. – user14412

+0

Könntest du das Python-Skript dazu bringen, ein Argument zu nehmen, anstatt "/foo.py" zu holen, bekommst du "/foo.py?div=id-of-div", dann hab ein bisschen Logik in foo.py damit umgehen? – jimw

Antwort

0

In Ihrem Erfolg Funktion müssen Sie das Ergebnis wie folgt filtern:

success: function(r){ 
    var divContent = $(r).filter('#myDiv').html(); 
} 

ich für Sie eine Arbeits Geige erstellt here.

Das ist die Lösung für Ihre Frage, aber Jim ist recht mit seinem Kommentar über das Ändern des Skripts, um nur den Inhalt auszugeben, das wäre die richtige Lösung.

+0

hab es, danke! – user14412

1

In Ihrer Ajax-Funktion haben Sie wahrscheinlich eine Erfolgsfunktion oder etwas ähnliches, wo die Datenvariable ausgegeben wird, wenn die zurückgegebenen Daten gültige HTML ist, analysieren nur den Ausgang mit einem Filter, etwa so:

$.ajax({ 
    url: "http://www.mysite.fun/html.py" 
//using the new .done() function, works the same with .success 
}).done(function (data) { 
    var element = $(data).filter(function() { 
         if (this.id=='IdOfMyDiv') return this; 
        }); 
}); 

FIDDLE

+0

Großartig, wir haben an der gleichen Lösung zur gleichen Zeit gearbeitet;) – Marc

+0

vielen Dank! obwohl ich mit dem Ändern der Python am Ende ging, aber das wird definitiv für zukünftige Projekte hilfreich sein – user14412