1

jQuery .load() を使用してphpファイルをロードしています。この php ファイルは、新しい div をエコーし​​ます。この div には属性「title」が含まれており、その値を js ファイルで取得する必要があります。

// file.php
echo '<div id="max_page" title="' . $max_page . '"></div>';

// js
$("someElement").load("file.php");
var num = $("div#max_page").attr("title");

これにより、num = "undefined" になります。この理由は、最初の $(document).ready が実行された後に div#max_page が DOM に追加されたため、jQuery は単にその存在を認識していないためだと想定しています。そうですか?

問題はどのように解決できますか?(私は .live() を試してみましたが、うまくいきませんでした)

4

3 に答える 3

1

numajaxがまだDOMへのページのロードを完了していないため、まだDOMに追加されていないことを確認してください。completeのコールバックでそれを行いますload:

$("someElement").load("file.php",function(){
var num = $("div#max_page").attr("title");
});
于 2011-06-19T10:35:09.680 に答える
0

あなたのタイミングが間違っていると考えるのは正しいです:)

// js
$("someElement").load("file.php", function(){
    var num = $("div#max_page").attr("title");
    // here you can do with num whatever you need
});

file.php2 番目の引数として渡された関数は、がロードされた直後に実行されるsomeElementため、この時点で title 属性が存在することが保証されます。

于 2011-06-19T10:35:53.643 に答える
0

を設定したときにファイルがロードされていませんnum。コールバックを使用します。

$("someElement").load("file.php", function () {
   var num = $("div#max_page").attr("title");
});
于 2011-06-19T10:36:06.243 に答える