javascript - 使用 fetch 结果作为函数参数
问题描述
我有 fetchTeam(teamName) 函数,它获取一组玩家并以 HTML 格式显示它们。另一个函数将玩家名称作为参数并显示玩家统计数据。像这样的东西......
let result = document.getElementById("result");
let teamName;
const fetchTeam = async (teamName) => {
teamName = document.getElementById("teamName").value;
const response = await fetch(`http://localhost:3000/${teamName}`);
const data = await response.json();
let team = data.teamStats;
let players = data.playerStats;
const teamName = team[0].Name;
const logo = team[0].Logo;
const WL = team[0].WL;
result.innerHTML = `
<br><div class="top">
<h3>${teamName}</h3>
<h4>Win / Loss: ${WL}</h4>
<img src=${logo}></div>
<div class="flex-container">
<div class="flex-child">
<button class='name' onclick="fetchPlayer("${players[0][0].Player}")> ${players[0][0].Player} </button> ...
`
除了底部的 onclick fetchPlayer 函数之外,一切都很好。下面是代码:
const results = document.getElementById("results");
const fetchPlayer = async (player) => {
const response = await fetch(`https://get-player.herokuapp.com/${player}`);
const data = await response.json();
results.innerHTML = `
<br>
<div class="layout">
<div class="child"><img src="${data.sprite}[0]"><br>${data.mons[0]}</div>
`
如您所见,我想显示团队成员,然后单击成员名称将显示他们的统计信息。
编辑:格式
解决方案
您的代码中有几个问题。
首先,您teamName
在fetchTeam
函数中重新声明。那是行不通的。
const fetchTeam = async (teamName) => {
teamName = document.getElementById("teamName").value;
...
const teamName = team[0].Name;
}
其次,您的按钮语法不正确:
<button class='name' onclick="fetchPlayer("${players[0][0].Player}")>
应该是
<button class='name' onclick="fetchPlayer('${players[0][0].Player}')">
第三,正如在这个答案中指出的那样,你的fetchPlayer
功能
<img src="${data.sprite}[0]">
应该是<img src="${data.sprite[0]}">
推荐阅读
- pentaho - 如何在 Pentaho CDE 中更改 CCC 折线图的文本大小
- delphi - 使用临时 TListItems 填充 TListView
- python - 使用 Pandas,我如何根据第一个空格进行拆分。
- git - 如何在 Cargo 中使用相对 git 子模块路径?
- c# - Selenium 不检索元素的当前文本值
- r - 带有可选年份的日期模式的正则表达式
- filter - 具有多种类型的 Lodash 流式过滤器或 pickBy
- javascript - 一段时间后提交表单的jQuery计数器:如何获取当前值以提交表单?
- mysql - Ruby on Rails:权限被拒绝 - 为“0.0.0.0”端口 80 (Errno::EACCES) 绑定 (2)
- node.js - 如何在linux中使用nodejs访问windows NAS?