jQuery Ajax 问题…如何用一次 Ajax 调用更新两个 DIV?

0 投票
4 回答
986 浏览
提问于 2025-04-15 18:34
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
$('#secondary').html($('#main p').html().split(',')[0]);

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

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 对象。

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 }}"
}

撰写回答