2009-03-02 3 views
0

Ich möchte einen Teil einer externen Seite int auf OS X Widget laden. Mit JQuery kann ich die Seite laden, aber es treten dann Fehler auf, wenn ich versuche, sie in die Seite einzufügen.jquery filter roh html form load()

Ich habe ein Problem beim Filtern der zurückgegebenen HTML, bevor ich es auf die Seite legte.

Ich mag wäre in der Lage sein, um die Seite zu holen, um die Tabelle herausfiltern Ich möchte, hängen Sie es dann auf die Seite (bei loadArea div)

$(document).ready(function() { 
     $().load("source.html", function(request) { 
      $("#loadArea").append(request).filter(".myclass"); // this is in callback because the loading is asynchronous and you cant filter it before it is all there) 
     });    
    }); 

Wenn ich die oben nichts tun, um den Bildschirm appened und die Seite ist leer (es sollte die Farbe schwarz sein -> etwas bricht die ganze Seite)

Ist es mit dem leeren Selector $() der richtige Weg? Gehe ich generell richtig vor?

Antwort

3

Ihr leerer Selektor-Ansatz funktioniert möglicherweise, aber die Verwendung von $ .get oder $ .post macht viel mehr Sinn. Außerdem müssen Sie die Elemente filtern, die Sie anhängen möchten vor Sie anhängen. Versuchen

$.get('source.html', function(data) { 
    $(data).filter('.myClass').appendTo('#loadArea'); 
}); 
0

Ich würde vorschlagen, es in funktionale Abschnitte zum Testen zu zerlegen. Zuerst sehen Sie, ob die Seite tatsächlich ohne Fehler zurückgegeben wird, also testen Sie den Ladeaufruf isoliert. Versuchen Sie dann, den loadArea separat mit einigen Dummy-Daten zu aktualisieren.

Die Verwendung des Debugger-Schlüsselworts im Rückruf kann dabei helfen, die Antwort vom Server zu überprüfen.

1

ich tun es so, dass

$(document).ready(function() { 
    $(#loadArea).load('source.html .myclass' 
    function());        
    }); 

, die in #loadArea die .myclass vom source.html laden wird