如何从Ajax请求中获取某些元素作为响应

时间:2018-10-08 14:25:06

标签: javascript jquery html ajax

我的php文件中的代码包含许多我在AJAX响应中检索的html元素。目前,它返回我放置区域中的所有html元素。我如何仅读取一个元素(即img),如下所示:

Php代码:

<img src="<?php echo $target_file; ?>">
<a target="_blank" href="<?php echo $target_file?>" >
<img src= "<?php echo $target_file?>" alt="Image not found" style="width:150px">
</a>
<p align = "center"><b> EXIF INFORMATION </b></p>

js文件:

function uploadFormData(formData) 
{
  $.ajax({
    url: "upload.php",
    type: "POST",
    data: formData,
    contentType:false,
    cache: false,
    processData: false,
    success: function(data){
      $('#drop-area').html(data);
    }
  });
}

2 个答案:

答案 0 :(得分:0)

我认为最好返回一个json,其中包含您要以html格式打印的信息,并以javascript ajax成功函数编写html,但是您可以通过以下方式使用html dom:

// Assuming you are using jQuery as $.ajax exists
var $data = $(data); // create a jquery element to search in dom
var $img = $(data.find("img:eq(1)")); // Get a reference to the img element at pos 1
... // work with element in normal jquery way

希望这会有所帮助

答案 1 :(得分:0)

您可以如下所示自定义ajax成功。有点劳累,但是您会得到理想的结果。

success: function(data){
     $('#drop-area').html(data);

    // will remove all the elements after the first image element
    $('#drop-area').find('>img:nth-child(1)').nextAll().remove();

    // need to read the first image element then can use below code
    var $firstImgObj = $('#drop-area').find('>img:nth-child(1)');
}