You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码让Fetch请求携带输入框的Pokemon ID或名称?

问题分析与修改方案

原代码有两个核心问题导致请求不符合预期:

  1. 模板字符串语法错误:把变量插值的$写成了&,无法正确将Pokemon编号/名称拼接到URL中;
  2. 输入框值获取时机错误:页面加载时就获取了输入框值,后续用户修改输入内容后,函数仍用旧值发起请求。

修改后的代码

var baseUrl = "https://pokeapi.co/api/v2/pokemon/";

function fetchPokemon(){
    // 每次调用函数时才获取最新的输入框内容
    var pokemonIdOrName = document.getElementById('pokemon_id').value.trim();
    // 避免空值发起无效请求
    if (!pokemonIdOrName) {
        console.log("请输入Pokemon编号或名称");
        return;
    }
    // 正确拼接请求URL
    fetch(`${baseUrl}${pokemonIdOrName}`)
    .then(response => {
        if (!response.ok) {
            throw new Error(`请求失败:${response.status}`);
        }
        return response.json();
    })
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error("获取Pokemon数据出错:", error);
    });
}

// 建议绑定按钮点击触发,而非页面加载时直接调用(此时输入框大概率为空)
// document.getElementById('fetch-btn').addEventListener('click', fetchPokemon);

关键修改说明

  • 修正模板字符串:将错误的${baseUrl}&{pokemonid}改为${baseUrl}${pokemonIdOrName},确保请求路径正确拼接编号/名称;
  • 延迟获取输入值:把输入框取值逻辑移到函数内部,保证每次调用都能拿到用户最新输入的内容;
  • 增加基础校验:判断输入是否为空,避免发起无意义的请求;
  • 添加错误处理:捕获请求失败的情况,方便排查问题(比如输入了不存在的编号/名称)。

内容的提问来源于stack exchange,提问作者xavi zamora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:30:51