jQuery:在load()函数中修改responseText

时间:2013-01-15 17:13:15

标签: jquery ajax load

是否可以在添加到元素之前修改responseText?

$('#target').load('script.php', params, function(response,status,xhr){
    response         = 'foo';  // doesn't work
    xhr.responseText = 'foo';  // doesn't work
    return 'foo';              // doesn't work        
})

我认为获得我想要的唯一方法是使用ajax方法并在成功时填充我的目标。

2 个答案:

答案 0 :(得分:0)

您必须使用jQuery's get method

$.get('script.php', params, function (responseText) {
    $('#target').html( responseText + 'foo' );
});

答案 1 :(得分:0)

<body>
  <div>
    <img id="random-dog" src=""/>
  </div>
  <button>Get me a doggo</button>

  <script>
    $("button").click(function () {
      $("#random-dog").load("https://dog.ceo/api/breeds/image/random", function (responseTxt, statusTxt, xhr) {
        if (statusTxt == "success")
          this.setAttribute("src", JSON.parse(responseTxt).message);
        console.log("External content loaded successfully!");
        if (statusTxt == "error")
          console.log("Error: " + xhr.status + ": " + xhr.statusText);
      });
    });
  </script>
</body>

在回调函数内部,如果状态文本成功,则处理响应并将其设置为 this src 属性。 this 表示选择器元素。

API 结构是:

{
    "message": "https://images.dog.ceo/breeds/whippet/n02091134_10242.jpg",
    "status": "success"
}