JavaScript编码练习:获取github上公开的用户信息并展示

问题描述

        在输入框输入用户名,页面将显示用户的头像、姓名 和 个人网址。

给定代码:

<html>
 <head>
 </head>
 <body>
   <h3> Information about a Github user </h3>
   <form id="form1">
  <input type="text" name="login">
  <input type="submit" value="Submit">
	<div id="infos"></div>
</form> 
  </body></html>

预计输出

 解决方法

        我的

//Write - Your - Code
const showUserInfo = userName =>
{
    fetch(`https://api.github.com/users/${userName}`)
    .then(response => response.json())
    .then(user => {
        const userImage = user.avatar_url;
        const username = user.name;
        const userSite = user.blog;
        const imgElement = document.createElement("img");
        imgElement.setAttribute("src", userImage);

        const usernameElement = document.createElement("h2");
        usernameElement.textContent = username;

        const userSiteElement = document.createElement("a");
        userSiteElement.href = userSite;
        userSiteElement.textContent = userSite;

        //添加到网页中
        const infosElement = document.getElementById("infos");
        infosElement.appendChild(imgElement);
        infosElement.appendChild(usernameElement);
        infosElement.appendChild(userSiteElement);

    })
    .catch(err =>
    {
        console.error(err.message);
    });
};

const formElement = document.getElementById("form1");
formElement.addEventListener("submit", e =>
{
    e.preventDefault();
    const userName =  formElement.elements.login.value;
    showUserInfo(userName);
});

显示效果:

 参考答案:

/*
GitHub user info
*/

const formElement = document.querySelector("form");
formElement.addEventListener("submit", e => {
  e.preventDefault();
  const login = formElement.elements.login.value;
  fetch(`https://api.github.com/users/${login}`)
    .then(response => response.json())
    .then(user => {
      // Create user info
      const pictureElement = document.createElement("img");
      pictureElement.src = user.avatar_url;
      pictureElement.style.height = "150px";
      pictureElement.style.width = "150px";
      const nameElement = document.createElement("div");
      nameElement.textContent = user.name;
      nameElement.style.fontSize = "20px";
      const websiteElement = document.createElement("a");
      websiteElement.href = user.blog;
      websiteElement.textContent = websiteElement.href;
      // Add info on the page
      const infosElement = document.getElementById("infos");
      infosElement.innerHTML = ""; // Remove previous user info
      infosElement.appendChild(pictureElement);
      infosElement.appendChild(nameElement);
      infosElement.appendChild(websiteElement);
    })
    .catch(err => {
      console.error(err.message);
    });
});

显示结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值