【问题标题】:Why does function "click" memorize data from JSON?为什么函数“点击”会记住来自 JSON 的数据?
【发布时间】:2020-09-03 18:38:09
【问题描述】:

我正在学习 javascript 课程,任务是从 JSONPLACEHOLDER 获取 JSON 数据并显示用户名。通过单击他们的姓名,应显示有关用户的完整数据。

JS代码:

const ul = document.querySelector(".list-group");
const h1 = document.querySelector("h1");

function getUsers(renderUsers) {
   const xhr = new XMLHttpRequest();
   xhr.open("GET", "https://jsonplaceholder.typicode.com/users");
   xhr.addEventListener("load", () => {
      const response = JSON.parse(xhr.responseText);
      renderUsers(response);
   });

   xhr.addEventListener("error", () => {
      console.log("error");
   });

   xhr.send();
}

function renderUsers(response) {
   const fragment = document.createDocumentFragment();
   response.forEach((user) => {
      const li = document.createElement("li");
      li.classList.add("list-group-item");
      li.textContent = user.name;
      li.addEventListener("click", (e) => {
         h1.innerHTML = `<h3>Email: ${user.email} <br>
                          Username: ${user.username} <br></h3>
                          Address: <h5>${user.address["street"]}, ${user.address["city"]}, ${user.address["zipcode"]}</h5>
                          </h3>Phone: ${user.phone}
                          </h3>`;
      });
      fragment.appendChild(li);
   });
   ul.appendChild(fragment);
}

getUsers(renderUsers);

所以,我不知道为什么会显示信息。毕竟,这没有保存在任何地方,或者我不明白。 请告诉我点击信息的逻辑是从哪里来的?

【问题讨论】:

    标签: javascript json xmlhttprequest


    【解决方案1】:

    函数getUsershttps://jsonplaceholder.typicode.com/users 发出请求并接收用户JSON 数据作为回报。然后函数renderUsers被调用,它循环解析JSON数据并在html中插入/呈现用户的完整数据。

    关于 XMLHttpRequests 的更多信息
    https://www.w3schools.com/xml/xml_http.asp

    请求中的第一个示例用户信息

      {
        "id": 1,
        "name": "Leanne Graham",
        "username": "Bret",
        "email": "Sincere@april.biz",
        "address": {
          "street": "Kulas Light",
          "suite": "Apt. 556",
          "city": "Gwenborough",
          "zipcode": "92998-3874",
          "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
          }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
          "name": "Romaguera-Crona",
          "catchPhrase": "Multi-layered client-server neural-net",
          "bs": "harness real-time e-markets"
        }
      }
    

    关于 JSON
    https://www.w3schools.com/js/js_json_intro.asp

    【讨论】:

    • 意思是当我在点击时添加事件监听,html会记住信息,点击时显示?
    • 你添加一个事件监听器来点击你的按钮。当按钮被点击时,getUsers 方法被调用并且我在上面所做的描述发生了。 Html 不会“记住”任何信息,它只是使用您收到的数据 + 现有 html 标签生成的文本,然后可以在您的网页上看到。
    • 我认为您应该先从 html、css 等基础知识开始,然后再学习 javascript 和 json。
    • 我知道 css 和 html 基础知识,但没有人不知道它是如何工作的。当然我知道 html 只是文本。但是老师再次通过url访问json来获取信息,我不明白为什么我的版本对我有用。
    • 我真的不明白你想要达到什么目的。您想知道为什么用户信息会在按钮单击时显示背后的逻辑,我对此进行了描述。
    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多