2014-04-15 64 views
0

所以我注意到jQuery時,他們取代.html()甚至沒有他們的例子工作正常。我試圖幫助一個有AJAX問題的用戶,突然間AJAX不在我的測試頁面或他的例子中表現。實際上它不會添加對#feedback的響應,無論是通過$('#feedback').load()設置還是使用函數來追加數據!但是,如果你提醒數據,果然,你有整個頁面(也是另一個問題,因爲我們應該抓住身體!)jQuery加載中斷?

jQuery正在發生什麼?

觸發頁

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Test</title> 
     <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
     <script> 
      $(function() { 
       $('#button').click(function() { 
        $('#feedback').load('test.htm #body', function(data){ 
         alert(data); 
         $('#feedback').html(data); // Append again... y u no work!? 

        }); 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <input id="button" type="submit" value="Go" /> 
     <div id="feedback">Welcome</div> 
    </body> 

</html> 

測試頁TEST.HTM

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Test</title> 
    </head> 
    <body id="body"> 
     Welcome again <label id="var_name" name="callBack_data" /> 
    </body> 
</html> 

這個動作將alert()整個頁面而並非只是身體的結果。它也不會將數據附加到div。

通過將按鈕類型更改爲type="button"我們可以將一些數據加載到div,但沒有正確的選擇。

的作品N」的東西

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Test</title> 
     <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
     <script> 
      $(function() { 
       $('#button').click(function() { 
        $('#feedback').load('test.htm #body'); 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <input id="button" type="button" value="Go" /> 
     <div id="feedback">Welcome</div> 
    </body> 

</html> 

測試頁更新

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Test</title> 
    </head> 
    <body> 
     <div id="body"> 
      Welcome again <label id="var_name" name="callBack_data" /> 
     </div> 
    </body> 
</html> 
+0

你不追加,你正在替換HTML。在這種情況下,您將使用請求的整個頁面而不是加載請求中指定的位來替換#feedback的HTML。 –

回答

3

.load已經沒有了。html的部分,你不需要自己做更新的代碼。

$('#feedback').load('test.htm #body'); 

此外,當你做$("<div>").html("<body></body>"),因此通過ID定位是行不通的<body>被刪除。包裝你的文字在一個div與id="body"

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Test</title> 
    </head> 
    <body> 
    <div id="body"> 
     Welcome again <label id="var_name" name="callBack_data" /> 
    </div> 
    </body> 
</html> 

這將導致

<div id="feedback"> 
    Welcome again <label id="var_name" name="callBack_data" /> 
</div> 

這將顯示爲:

再次歡迎

+0

這是關鍵,不是。請檢查代碼或閱讀我的解釋。 – WASasquatch

+0

對不起,我沒有寫完我的答案。查看更新。 –

+0

其實load()正如預期的那樣工作@JordanThompson。你需要看看這些東西是如何工作的。 –