jQuery Ajax问题...如何使用ONE ajax调用更新两个DIV?

时间:2010-01-28 00:39:08

标签: javascript jquery python ajax django

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}} ,这是代码,而不是全部?

4 个答案:

答案 0 :(得分:6)

一个选项是返回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 }}"
}

答案 1 :(得分:1)

您需要从请求中返回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对象。

答案 2 :(得分:0)

使用正则表达式

success:function(html){
        $("#main").html(html);
        $("secondary").html( /.*?(?=,)/.exec(html) );
    }

答案 3 :(得分:0)

$('#secondary').html($('#main p').html().split(',')[0]);