从AJAX加载的内容中获取JS变量?

时间:2012-11-01 20:32:08

标签: jquery ajax function variables plugins

我知道在.ajax()加载的页面中调用jQuery插件是不可能的,唯一的方法是在父页面中编写一个函数并在AJAX的function(data)部分调用此函数请求。这一般工作,但我卡住了因为我的函数需要一个来自加载内容的变量才能正常工作,无论我正在尝试什么,我都无法从加载的内容中获取变量到父函数中,请参阅我的示例:

这是我的功能:

function doPaginate(maxpage) {
    jQuery("#demo5").paginate({
        count: maxpage
    });
}​

这是我的jQuery.ajax()请求:

function loadProfileTab(tab, ownerinfo) {
    jQuery.post("./profile_ajax.php", {
        task: 'profiletab',
        v: tab,
        user_id: ownerinfo
    }, function(data) {
        jQuery("#profile_content_wrapper").html(data);
        doPaginate(maxpage);
    });
}​

我正在尝试的是将PHP加载内容中的变量maxpage放入AJAX请求中的函数doPaginate(maxpage)

我知道一些解决方法,例如首先启动请求以获取$maxpage的结果,然后再次启动请求以在新请求中使用此结果,但它似乎不是“最好的”解决方案

有人能引导我找到更好的解决方案吗?或者我在上面的代码示例中尝试的是不可能的?

祝你好运!

1 个答案:

答案 0 :(得分:0)

您可以将maxpage变量的值添加为AJAX返回的HTML中的隐藏字段,并使用 jQuery 查找值,如下所示。

var data = '<html><head></head><body><form><div>Ble</div><input id="maxpage" type="hidden" value="10"/></form></body></html>';
var maxpage = $(data).find('#maxpage').val();
console.log(maxpage);
alert(maxpage);

以下是此代码的DEMO