Einfaches jQuery-Ajax-Beispiel, bei dem Elemente in zurückgegebenem HTML nicht gefunden werden
Ich versuche, die Ajax-Funktionen von jQuery zu lernen. Ich habe es zum Laufen gebracht, aber jQuery findet keine Elemente im zurückgegebenen HTML-DOM. Führen Sie im selben Ordner wie jquery die folgende Seite aus:
<code><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>runthis</title> <script type="text/javascript" language="javascript" src="jquery-1.3.2.min.js"></script> <script tyle="text/javascript"> $(document).ready(function(){ $('input').click(function(){ $.ajax({ type : "GET", url : 'ajaxtest-load.html', dataType : "html", success: function(data) { alert( data ); // shows whole dom alert( $(data).find('#wrapper').html() ); // returns null }, error : function() { alert("Sorry, The requested property could not be found."); } }); }); }); </script </head> <body> <input type="button" value="load" /> </body> </html> </code>
Welche lädt diese Seite "ajaxtest-load.html":
<code><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>load this</title> </head> <body> <div id="wrapper"> test </div> </body> </html> </code>
Es gibt zwei Warnungen. Eine, die das DOM zeigt, wurde geladen, die zweite zeigt jedoch NULL anstelle des #wrappers. Was mache ich falsch?
BEARBEITEN: Ich lade "ajaxtest-load.html", die den gesamten Header enthält, einschließlich jquery erneut. Ist das das Problem?