0

一部のコンテンツ(外部htmlファイル)をDOMにロードし、ロードされたばかりのコンテンツを警告するjsファイルがあります

boo.html

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

play.js

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

file.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 に答える