繁体   English   中英

jQuery Ajax出现问题…如何通过一个ajax调用更新两个DIV?

[英]Problem with jQuery Ajax…how do I update two DIVs with ONE ajax call?

function ajaxCall(query){
$.ajax({
    method:"get",
    url:"/main/",
    data:"q="+query,
    beforeSend:function() {},
    success:function(html){
        $("#main").html(html);
    }
    });
};

这是将填充#main的整个代码:

<p>{{ num_results }}, you just searched for {{ query }}</p>

假设我还有一个称为$(“ secondary”)的 div ....我该如何用{{num_results}}来填充它,它是代码的一部分,而不是全部代码?

一种选择是返回json和每个区域所需的数据。

$.ajax({
    method:"get",
    url:"/main/",
    dataType: "json",
    data:"q="+query,
    beforeSend:function() {},
    success:function(json){
        $("#main").html(json.main);
        $("#secondary").html(json.secondary);
    }
});

您将返回的是:

{
    "main": "<p>{{ num_results }}, you just searched for {{ query }}</p>",
    "secondary": "{{ num_results }}"
}

您将需要从请求中返回XML或JSON对象,该对象将仅用于填充相关部分。 尝试这样的事情:

function ajaxCall(query){
$.ajax({
    method:"get",
    url:"/main/",
    data:"q="+query,
    beforeSend:function() {},
    success:function(html){
        $("#main").html(html.main);
        $("#secondary").html(html.secondary);
    }
    });
 };

您还需要更新服务器端以返回JSON对象。

使用正则表达式

success:function(html){
        $("#main").html(html);
        $("secondary").html( /.*?(?=,)/.exec(html) );
    }
$('#secondary').html($('#main p').html().split(',')[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM