如何返回一个对象图像文件并根据用户在JavaScript中的输入显示在弹出窗口中?

如何返回一个对象图像文件并根据用户在JavaScript中的输入显示在弹出窗口中?,javascript,image,input,popup,display,Javascript,Image,Input,Popup,Display,我目前正在使用纯JavaScript进行Pokedex项目。我接受用户输入,并将值“弱点”和“阻力”类型返回到该输入。我现在有一个显示文本的弹出窗口,但是类型对象都有一个链接到每个类型的图像文件。我只想在用户提交时显示图像而不是文本。帮忙 <form class="main" id="main"> <div class="segment"> <h1>Poké

我目前正在使用纯JavaScript进行Pokedex项目。我接受用户输入,并将值“弱点”和“阻力”类型返回到该输入。我现在有一个显示文本的弹出窗口,但是类型对象都有一个链接到每个类型的图像文件。我只想在用户提交时显示图像而不是文本。帮忙

 <form class="main" id="main">

        <div class="segment">
            <h1>PokéDex v.2</h1>
        </div>

        <label>
            <input type="text" id="type-input" placeholder="Input Pokemon Type">
        </label>

        <button class="red" type="button submit" id="submit" value="Submit"><i class="icon ion-md-lock"></i>
            Search</button>

    </form>

    <div class="popup-wrapper">
        <div class="popup">
            <div class="popup-close">X</div>
            <div class="popup-content" id="content">
                <p>weakness: <span id="weakness">Error</span></p>
                <div id="weakImg"></div>
                <p>resistance: <span id="resistance">Error</span></p>
                <div id="resImg"></div>
            </div>
        </div>
    </div>

    <div class="pokemon" id="pokemon"></div>
    

神奇宝贝v.2
搜寻
X
缺点:错误

电阻:错误

const form=document.querySelector(“#main”);
const blink=document.querySelector(“类型输入”);
const button=document.querySelector(“提交”);
常量标题=document.querySelector(“h1”);
const popup=document.querySelector(“.popup包装器”);
const close=document.querySelector(“.popup close”);
常量弱点=document.getElementById(“弱点”);
const resistance=document.getElementById(“resistance”);
const weakImg=document.getElementById(“weakImg”);
const resImg=document.getElementById(“resImg”);
常量类型=[
{
类型:“正常”,
弱点:“战斗”,
抵抗:“无”,
imgFile:'icon set/icons/normal.svg',
},
{
类型:“战斗”,
弱点:“飞翔,通灵,仙女”,
抵抗:“黑暗,岩石,虫子”,
imgFile:'icon set/icons/fighting.svg',
},
{
类型:“飞行”,
弱点:“石头、电、冰”,
抵抗:“战斗,虫子,草”,
imgFile:'icon set/icons/flying.svg',
},
{
类型:“毒药”,
弱点:“地面,心灵”,
抵抗:“战斗,毒药,虫子,草,仙女”,
imgFile:'icon set/icons/poison.svg',
},
{
类型:“地面”,
弱点:“水、草、冰”,
抵抗:“毒药,石头”,
imgFile:'icon set/icons/ground.svg',
},
{
类型:“岩石”,
弱点:“战斗,地面,钢铁,水,草”,
抵抗:“正常,飞行,毒药,火焰”,
imgFile:'icon set/icons/rock.svg',
},
{
键入:“bug”,
弱点:“飞行,岩石,火焰”,
抵抗:“战斗,地面,草地”,
imgFile:'icon set/icons/bug.svg',
},
{
类型:“鬼”,
弱点:“幽灵,黑暗”,
抵抗:“毒药,虫子”,
imgFile:'icon set/icons/ghost.svg',
},
{
类型:“钢”,
弱点:“战斗,地面,火力”,
阻力:
“普通,飞行,岩石,虫子,钢铁,草,通灵,冰,龙,仙女”,
imgFile:'icon set/icons/steel.svg',
},
{
类型:“火”,
弱点:“地面、岩石、水”,
抵抗:“虫子,钢铁,火,草,冰,仙女”,
imgFile:'icon set/icons/fire.svg',
},
{
类型:“水”,
弱点:“草,电”,
阻力:“钢、火、水、冰”,
imgFile:'icon set/icons/water.svg',
},
{
类型:“草”,
弱点:“飞行,毒药,虫子,火,冰”,
电阻:“地、水、草、电”,
imgFile:'icon set/icons/grass.svg',
},
{
类型:“电动”,
弱点:“地面”,
电阻:“飞,钢,电”,
imgFile:'icon set/icons/electric.svg',
},
{
类型:“通灵者”,
弱点:“虫子,鬼,黑暗”,
抵抗:“战斗,心灵”,
imgFile:'icon set/icons/psycholic.svg',
},
{
类型:“冰”,
弱点:“战斗,岩石,钢铁,火”,
抵抗:“冰”,
imgFile:'icon set/icons/ice.svg',
},
{
字体:“龙”,
弱点:“冰,龙,仙女”,
电阻:“火、水、草、电”,
imgFile:'icon set/icons/dragon.svg',
},
{
类型:“黑暗”,
弱点:“战斗,虫子,仙女”,
抵抗:“幽灵,黑暗”,
imgFile:'icon set/icons/dark.svg',
},
{
类型:“仙女”,
弱点:“毒、鬼、龙”,
抵抗:“战斗,虫子,黑暗”,
imgFile:'icon set/icons/fairy.svg',
},
];
findType=(输入)=>{
设obj=types.find((o)=>o.type==input);
返回obj?obj.弱点:console.log(“错误”);
};
findRes=(输入)=>{
让obj2=types.find((o)=>o.type==input);
返回obj2?obj2.resistance:console.log(“错误”);
};
findImg=(输入)=>{
让objI=types.find((o)=>o.type==input);
返回objI?objI.imgFile:console.log(“未加载图像”);
};
getImage=(输入)=>{
设img=新图像();
weakImg.innerHTML=img;
弱智儿童(img);
}  
//如果我们动态地插入image元素,而不是删除html中的隐藏类,会怎么样?
//findType=(输入)=>{
//if(types.includes(`${input}`)){
//innerText=findType(输入);
//  };
// };
//让结果=[];
//事件侦听器
按钮。addEventListener(“单击”,()=>{
//log(“你点击了我!”);
//弹出窗口
popup.style.display=“block”;
blink.style.display=“无”;
});
close.addEventListener(“单击”,()=>{
popup.style.display=“无”;
});
popup.addEventListener(“单击”,()=>{
popup.style.display=“无”;
});
表格.附录列表(“提交”、(e)=>{
e、 预防默认值();
让输入=document.getElementById(“类型输入”).value.toLowerCase().trim();
//让image=types.find(type=>type.imgFile);
//console.log(图像);
//获取图像(图像);
//log(findType(输入));
innerText=findType(输入);
resistance.innerText=findRes(输入);
//weakImg.innerHTML=`;
//popup.innerHTML=`${input}.classList.remove(“hide”)`;
form.reset();
blink.style.display=“block”;
});

在弹出窗口中添加img,并在出现时设置src。
简而言之,用您想要显示的元素的src更改img src。

您具体在哪里遇到问题?你实际上只确定了一个目标,但没有提到你的困境,也没有提到你需要别人的具体帮助。还请注意,在发布问题时,最少的代码是最好的。可能不需要30件
const form = document.querySelector("#main");
const blink = document.querySelector("#type-input");
const button = document.querySelector("#submit");
const heading = document.querySelector("h1");
const popup = document.querySelector(".popup-wrapper");
const close = document.querySelector(".popup-close");
const weakness = document.getElementById("weakness");
const resistance = document.getElementById("resistance");
const weakImg = document.getElementById("weakImg");
const resImg = document.getElementById("resImg");
const types = [
  {
    type: "normal",
    weakness: "fighting",
    resistance: "none",
    imgFile: 'icon-set/icons/normal.svg',
  },
  {
    type: "fighting",
    weakness: "flying, psychic, fairy",
    resistance: "dark, rock, bug",
    imgFile: 'icon-set/icons/fighting.svg',
  },
  {
    type: "flying",
    weakness: "rock, electric, ice",
    resistance: "fighting, bug, grass",
    imgFile: 'icon-set/icons/flying.svg',
  },
  {
    type: "poison",
    weakness: "ground, psychic",
    resistance: "fighting, poison, bug, grass, fairy",
    imgFile: 'icon-set/icons/poison.svg',
  },
  {
    type: "ground",
    weakness: "water, grass, ice",
    resistance: "poison, rock",
    imgFile: 'icon-set/icons/ground.svg',
  },
  {
    type: "rock",
    weakness: "fighting, ground, steel, water, grass",
    resistance: "normal, flying, poison, fire",
    imgFile: 'icon-set/icons/rock.svg',
  },
  {
    type: "bug",
    weakness: "flying, rock, fire",
    resistance: "fighting, ground, grass",
    imgFile: 'icon-set/icons/bug.svg',
  },
  {
    type: "ghost",
    weakness: "ghost, dark",
    resistance: "poison, bug",
    imgFile: 'icon-set/icons/ghost.svg',
  },
  {
    type: "steel",
    weakness: "fighting, ground, fire",
    resistance:
      "normal, flying, rock, bug, steel, grass, psychic, ice, dragon, fairy",
    imgFile: 'icon-set/icons/steel.svg',
  },
  {
    type: "fire",
    weakness: "ground, rock, water",
    resistance: "bug, steel, fire, grass, ice, fairy",
    imgFile: 'icon-set/icons/fire.svg',
  },
  {
    type: "water",
    weakness: "grass, electric",
    resistance: "steel, fire, water, ice",
    imgFile: 'icon-set/icons/water.svg',
  },
  {
    type: "grass",
    weakness: "flying, poison, bug, fire, ice",
    resistance: "ground, water, grass, electric",
    imgFile: 'icon-set/icons/grass.svg',
  },
  {
    type: "electric",
    weakness: "ground",
    resistance: "flying, steel, electric",
    imgFile: 'icon-set/icons/electric.svg',
  },
  {
    type: "psychic",
    weakness: "bug, ghost, dark",
    resistance: "fighting, psychic",
    imgFile: 'icon-set/icons/psychic.svg',
  },
  {
    type: "ice",
    weakness: "fighting, rock, steel, fire",
    resistance: "ice",
    imgFile: 'icon-set/icons/ice.svg',
  },
  {
    type: "dragon",
    weakness: "ice, dragon, fairy",
    resistance: "fire, water, grass, electric",
    imgFile: 'icon-set/icons/dragon.svg',
  },
  {
    type: "dark",
    weakness: "fighting, bug, fairy",
    resistance: "ghost, dark",
    imgFile: 'icon-set/icons/dark.svg',
  },
  {
    type: "fairy",
    weakness: "poison, ghost, dragon",
    resistance: "fighting, bug, dark",
    imgFile: 'icon-set/icons/fairy.svg',
  },
];

findType = (input) => {
  let obj = types.find((o) => o.type == input);
  return obj ? obj.weakness : console.log("Error");
};

findRes = (input) => {
  let obj2 = types.find((o) => o.type == input);
  return obj2 ? obj2.resistance : console.log("Error");
};

findImg = (input) => {
  let objI = types.find((o) => o.type == input);
  return objI ? objI.imgFile : console.log("No Image Loaded");
};

getImage = (input) => { 
  let img = new Image(); 
  weakImg.innerHTML =  img;
  weakImg.appendChild(img); 
}  


// what if we dynamically insert the image element instead of removing a hidden class in the html?







// findType = (input) => {
//  if( types.includes(`${input}`)){
//   weakness.innerText = findType(input);
//  };
// };

// let results = [];

// Event Listeners

button.addEventListener("click", () => {
  //   console.log("You clicked me!");
  //popup
  popup.style.display = "block";
  blink.style.display = "none";
});

close.addEventListener("click", () => {
  popup.style.display = "none";
});

popup.addEventListener("click", () => {
  popup.style.display = "none";
});

form.addEventListener("submit", (e) => {
  e.preventDefault();
  let input = document.getElementById("type-input").value.toLowerCase().trim();
  // let image = types.find(type => type.imgFile);
  // console.log(image);
  // getImage(image);

  
  

  // console.log(findType(input));
  weakness.innerText = findType(input);
  
  resistance.innerText = findRes(input);

  // weakImg.innerHTML = `<img src="${input.image}" />` ;

  // popup.innerHTML = `${input}.classList.remove("hide")`;

  form.reset();
  blink.style.display = "block";
});