2017-07-12 53 views
-3

爲什麼jquery不能在ajax方法中工作?爲什麼jQuery不在Ajax函數中工作?

<body> 

<h2>The XMLHttpRequest Object</h2> 

<p id="demo">Let AJAX change this text.</p> 

<button type="button" onclick="loadDoc()">Change Content</button> 

<script> 
function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     $('#demo').html('Hello World'); 
    } 
    }; 
    xhttp.open("GET", "ajax_info.txt", true); 
    xhttp.send(); 
} 
</script> 

</body> 

現在這裏

$('#demo').html('Hello World'); 

它不工作。

但這確實

document.getElementById("demo").innerHTML = 'asas'; 

爲什麼呢?可能是什麼原因。我曾嘗試將id改爲class,但沒有運氣。

+11

是否包含jQuery腳本到您的網頁? – Morpheus

+2

奇怪的是,儘管在頁面中包含jQuery,您仍然使用原始XHR。 – 31piy

+1

如果jQuery在那裏並且Ajax調用成功,那麼該代碼應該可以工作。控制檯中的錯誤消息是什麼? – epascarello

回答

0

嘗試</body>標記之前加入jQuery的 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

權。

正如@ 31piy提到在他的評論,你可以使用jQuery的Ajax功能,像這樣:

<script> 
    $(function() { 
    $(document).on('click', 'button', function (event) { 
     event.preventDefault(); 
     $.get('ajax_info.txt', '', function(response, textStatus) { 
     $('#demo').html('Hello World'); 
     }); 
    }); 
    }); 
</script>