0

我有一个 js 文件,它将一些内容(外部 html 文件)加载到 DOM 中,然后提醒刚刚加载的内容

嘘.html

<div id="tyler">
   Tyler
</div>

play.js

$('#result').load('../html/boo.html');
var mike = $('#tyler').text();
alert(mike);

文件.html

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>A</title>

    </head>
    <body>
        <div id="result"></div>
        <script type="text/javascript" src="play.js">
    </body>
</html>

出于某种奇怪的原因,当alert(mike)我得到的是空白时。你不能附加一个带有一些 id 的 div,然后引用你刚刚注入的新 div 吗?

在此处输入图像描述

4

1 回答 1

2

.load()是异步的。它关闭并做它的事情,您的代码继续在线执行。因此,如果您立即检查内容,它还不会存在。服务器响应、发送 HTML 并将其插入 DOM 需要一段时间。

您需要使用回调来执行此操作。回调是异步事件完成时触发的事件。

$('#result').load('../html/boo.html',function() { alert("moo, this is the callback") });

http://api.jquery.com/load/

于 2013-08-15T20:59:52.860 回答