0

我需要在 json 响应中从 html 中按 id 选择一个 div。

在服务器端:

    ob_start();

    extract($this->validate($this->data));
    require("classes/View/". $this->view . ".phtml");

    $content = ob_get_contents();
    ob_end_clean();

    header('Content-type: application/json');

    echo json_encode(array(
        'messages' => $this->data["messages"],
        'content' => $content
));

在客户端:

    $.ajax({  
        type: "POST",  
        url: o.url ,
        dataType: "JSON",
        data: o.ajax_data,
        success: function(response) {
                    $("#mydiv").html($(response.content).find("#mydiv"));
        }
    });

之前,当我使用 HTML 作为数据类型并返回纯 HTML 作为响应时,一切都正常运行。即使经过数小时的研究,我也无法找出正确的解决方案。有人可以帮我吗?

===更新 1===

console.log(response.content) => {"messages":[],"content":"此处完成转义的 html 站点"}

4

1 回答 1

0

您正在将#mydiv(作为响应的占位符元素)放入 DOM placeholder #mydiv。您可能想要做的是将#mydiv响应的内容放入占位符。

假设您response.content的 html 代码格式正确,这应该可以工作:

var content = $(response.content).find("#mydiv").html(); // get html of #mydiv in response
$("#mydiv").html(content);
于 2013-08-21T20:54:33.523 回答