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