【问题标题】:How to display ajax get request data to html?如何将ajax获取请求数据显示到html?
【发布时间】:2020-09-14 19:07:22
【问题描述】:
$.ajax({
  type: 'get',
  url: '/get/posts',
  dataType: 'json',
  success: function (data) {
    console.log(data);
    $('#title').html(data.title);
  },
  error: function (xhr, status, error) {
    console.log(xhr, error);
  }
});

我成功获取了数据,现在我想显示它。我试图通过添加一个带有“标题”和 id 的 div 来简单,然后将响应数据动态加载到 div 中。但是该数据没有显示。

<div id = "title">
    <span ></span>
</div>

我的目标是在卡片中显示响应数据。我可以用刀片语法完美地做到这一点,但我只是想了解更多关于基本 javascript 的知识,这样当我开始使用框架时就会减少头痛。

这是我获取数据的方式:

public function get_ajax_post(){
        $posts = Post::all();
        return json_encode($posts);
}

这是 console.log

1: {…}
​​
category: "python"
​​
content: "<p>asd asd asd</p>"
​​
created_at: "2020-05-26T16:43:34.000000Z"
​​
featured_image: "null"
​​
id: 2
​​
slug: "asdas-dasd"
​​
title: "asdas dasd"
​​
updated_at: "2020-05-26T16:43:34.000000Z"

....... and so on 

感谢您的帮助。我在 Google 上搜索了很多关于如何在 ajax 中动态显示获取请求的信息,但我看到的只是发布请求,而且我已经这样做了。

我现在的目标是获取数据并将其动态显示在我的视图中。谢谢您的帮助。

【问题讨论】:

  • 您似乎一切正常。您要问的只是如何将响应数据插入卡片?
  • 是的。但是应该在span标签中的数据没有显示

标签: javascript html ajax laravel


【解决方案1】:

如果我错了,请纠正我,但我认为您的问题是,“我从 ajax 调用中得到一个字符串,现在我想使用 jQuery 将该字符串插入到 div 中。”

如果这是你的问题,那么你做对了。

如果您希望您的 HTML 显示在 &lt;span&gt; 标记内,您只需将 jQuery 选择器更改为:$('#title span').html(data.title);

【讨论】:

  • 您也可以尝试使用.append() 方法,如下所示:$('#title span').append(data.title)。您可能还想尝试仅在控制台记录您要插入的特定属性,以确保它被正确访问,如下所示:console.log(data.title)
  • 谢谢我试试这个
【解决方案2】:

总而言之,目标是从响应数据中获取title 属性:

const data = {
  category: "python",
  content: "<p>asd asd asd</p>",
  created_at: "2020-05-26T16:43:34.000000Z",
  featured_image: "null",
  id: 2,
  slug: "asdas-dasd",
  title: "asdas dasd",
  updated_at: "2020-05-26T16:43:34.000000Z"
}

并将其显示在这个span标签内:

<div id = "title">
    <span></span>
</div>

这个 vanilla JavaScript 将完成这项任务:

const div = document.getElementById('title');
const span = div.firstElementChild;
span.innerHTML = data.title;

const data = {
  category: "python",
  content: "<p>asd asd asd</p>",
  created_at: "2020-05-26T16:43:34.000000Z",
  featured_image: "null",
  id: 2,
  slug: "asdas-dasd",
  title: "asdas dasd",
  updated_at: "2020-05-26T16:43:34.000000Z"
}

const addTitle = () => {
  const div = document.getElementById('title');
  const span = div.firstElementChild;
  span.innerHTML = data.title;
}
#title {
  outline: 1px solid red;
  padding: 0.5rem;
}

span {
  outline: 1px solid #aaa;
  padding: 0.2rem;
}
<button onclick="addTitle()">Add Title</button>
<div id="title">
  <span></span>
</div>

【讨论】:

  • 如果我们在做 vanilla js,你也可以通过document.querySelector('#title span').innerHTML = data.title来简化它
  • @AlecDonaldMather 是的,谢谢。我选择了更详细的方法以使其更易于理解。
  • 是的,我明白了,我只是想提供多种做事方式:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
相关资源
最近更新 更多