我正在使用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="未定义"。我假设这是因为在执行初始$(document).ready之后,div#max_page被添加到DOM中,因此jQuery根本不知道它的存在。是这样吗?
如何解决这个问题?(我试着用.live()进行实验,但无法让它为我工作)
当您检查num
时,它还没有被添加到DOM中,因为ajax还没有完成将页面加载到DOM中。在load
:的complete
回调中执行
$("someElement").load("file.php",function(){
var num = $("div#max_page").attr("title");
});
你认为时机不对是对的:)
// js
$("someElement").load("file.php", function(){
var num = $("div#max_page").attr("title");
// here you can do with num whatever you need
});
作为第二个参数传递的函数将在file.php
加载到someElement
后立即执行,从而保证title属性此时存在。
设置num
时,文件尚未加载。使用回调。
$("someElement").load("file.php", function () {
var num = $("div#max_page").attr("title");
});