使用jquery ajax时出现html()问题

使用jquery ajax时出现html()问题,jquery,ajax,Jquery,Ajax,load.php <h2>Envato is 3!</h2> Envato是3! index.php <input type="button" value="load" id="load_basic" /> <div id="result" class="functions"> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jq

load.php

<h2>Envato is 3!</h2>
Envato是3!
index.php

<input type="button" value="load" id="load_basic" />
<div id="result"  class="functions">
</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script type="text/javascript">
    $.ajaxSetup ({
        cache: false
    });
    var ajax_load = "<img class='loading' src='img/load.gif' alt='loading...' />";

//  load() functions
    var loadUrl = "ajax/load.php";
    $("#load_basic").click(function(){
        $("#result").html(ajax_load).load(loadUrl);
        console.log($("#result").html());
    });
</script>

$.ajaxSetup({
缓存:false
});
var ajax_load=“”;
//load()函数
var loadUrl=“ajax/load.php”;
$(“#加载_基本”)。单击(函数(){
$(“#结果”).html(ajax#u load).load(loadUrl);
log($(“#结果”).html();
});
在前端,当我在chrome->console中单击按钮时,它显示:

<img class="loading" src="img/load.gif" alt="loading...">  

问题:

  • 为什么不显示:
    Envato是3.load()
    已经将内容放入
    #result

  • console.log($(“#result”).html()显示结果:
    ,但为什么在前端,当我使用firebug时,看不到img元素:load.gif


  • 如果要使用AJAX调用的结果,必须在回调函数中执行:

    $("#load_basic").click(function(){
        $("#result").html(ajax_load).load(loadUrl, function() {
            console.log($("#result").html());
        });
    });
    

    AJAX是异步的。您的
    console.log()
    在AJAX调用完成之前运行。把它放在回调函数中。谢谢,但我还是不知道为什么。我知道AJAX是异步的。但是为什么在AJAX调用完成之前运行
    console.log()
    ?在脚本中,它位于ajax调用行之后。你能再给我解释一下吗?谢谢这就是“异步”的意思。调用
    .load()
    只会启动AJAX调用,而不会等待它完成。