通过使用.load()加载的文件访问已添加到DOM的元素

时间:2011-06-19 10:31:33

标签: php jquery jquery-load

我正在使用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(),但无法让它为我工作)

3 个答案:

答案 0 :(得分:1)

检查num时尚未将其添加到DOM中,因为ajax尚未完成将页面加载到DOM中。在complete的{​​{1}}回调中执行此操作:

load

答案 1 :(得分:0)

你认为你的时机错误是对的:)

// 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属性。

答案 2 :(得分:0)

设置num时文件未加载。使用回调。

$("someElement").load("file.php", function () {
   var num = $("div#max_page").attr("title");
});