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"。我假设这样做的原因是 div#max_page 在执行初始 $(document).ready 之后被添加到 DOM 中,因此 jQuery 根本不知道它的存在。是对的吗?

如何解决问题?(我尝试使用 .live() 进行试验,但无法让它为我工作)

4

3 回答 3

1

当您检查num它尚未添加到 DOM 时,因为 ajax 尚未完成将页面加载到 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.php加载到后立即执行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 回答