首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我找不到为什么对象不能读取它自己的值

问我找不到为什么对象不能读取它自己的值
EN

Stack Overflow用户
提问于 2020-06-30 21:16:02
回答 2查看 25关注 0票数 0

我正在为我的兄弟写一段关于精灵宝可梦的代码,但是Pokeball对象没有告诉我它的价值,我也不知道为什么。代码如下:

代码语言:javascript
复制
    let pokeball = document.getElementById("pokeballType");
    let catchRate = document.getElementById('catchRate')
    console.log(`the type of pokeball is ${typeof(pokeball)}.`);
    if (pokeball.options[pokeball.selectedIndex].value === 'timerBall') {
        timerBall.style.display = 'inline';
        timerBallLabel.style.display = 'inline';
        console.log('Working')
    }

    <select name = 'pokeball2' id="pokeballType">
        <option value=1 selected = 'selected'>Pokeball</option>
        <option value=2>Ultra Ball</option>
        <option value=1.5>Great Ball</option>
        <option value=3.5>Dusk Ball if used inside cave</option>
        <option value=4>Quick ball if used on first turn</option>
        <option value='timerBall'>Timer Ball</option>
    </select>
EN

回答 2

Stack Overflow用户

发布于 2020-06-30 21:28:52

您需要一个change事件,该事件在您更改de selectbox中的值时触发。否则,它将仅在启动时运行。

​

代码语言:javascript
复制
let pokeball = document.getElementById("pokeballType");

pokeball.addEventListener("change", () => {
  if (pokeball.value === 'timerBall') {
    console.log("timerBall selected...");
  }else{
    console.log(pokeball.value);
  }
});
代码语言:javascript
复制
<select name = 'pokeball2' id="pokeballType">
    <option value=1 selected = 'selected'>Pokeball</option>
    <option value=2>Ultra Ball</option>
    <option value=1.5>Great Ball</option>
    <option value=3.5>Dusk Ball if used inside cave</option>
    <option value=4>Quick ball if used on first turn</option>
    <option value='timerBall'>Timer Ball</option>
</select>

​

票数 1
EN

Stack Overflow用户

发布于 2020-06-30 21:29:09

首先,确保在解析完所有的超文本标记语言并在select中做出选择之后,script才能执行。您的代码没有显示任何事件处理,因此我们可能会假设您正在尝试在进行任何选择之前获取所选值。

下面是您应该设置的内容,请注意,通过简单地请求select的value来获取所选选项值要比获取selectedIndex值简单得多。

​

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title>Sample</title>
  <meta charset="utf-8">
</head>
<body>
  <select name = 'pokeball2' id="pokeballType">
        <option value=1 selected = 'selected'>Pokeball</option>
        <option value=2>Ultra Ball</option>
        <option value=1.5>Great Ball</option>
        <option value=3.5>Dusk Ball if used inside cave</option>
        <option value=4>Quick ball if used on first turn</option>
        <option value='timerBall'>Timer Ball</option>
  </select>
    
  <script>
    let pokeball = document.getElementById("pokeballType");
    
    // Set up an even handler for when the value of the select changes
    pokeball.addEventListener("change", function(){
      if (pokeball.value === 'timerBall') {
        console.log('Working')
      }    
    });

  </script>
</body>
</html>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62658354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档