【问题标题】:parseFloat is not workingparseFloat 不工作
【发布时间】:2018-07-10 01:49:03
【问题描述】:

我不知道为什么我被这个简单的问题难住了,但我正在尝试使用 parseFloat() 测试一个简单的点击游戏。但它不会工作!有什么想法吗?:

<!--ADD POINTS-->
<button onclick="add()">
  CLICK ME
</button>
<script>
  var score = parseFloat(document.getElementById('score').value);

  function add() {
    score += 1;
    document.getElementById('score').innerHTML = score;
  }
</script>

【问题讨论】:

  • 你能解释一下你所说的“它不起作用”是什么意思吗?你期望它做什么,它实际上做了什么?
  • 这个 ID 为 score 的元素在哪里? ...而且您似乎在同一个元素上同时使用了 value 和 innerHTML - 这肯定表明您做错了
  • 首先,在页面加载时检查score是否有任何值?然后从 add 函数中的 score 获取值。

标签: javascript html parsefloat


【解决方案1】:

从您的问题中我不确定您在寻找什么,但如果您只想从文本框中获取值并希望按增量显示。请参阅此代码 sn-p。

另外.innerHTML 不是在输入元素中设置值的正确方法。

  

 function add() {
 var score = parseFloat(document.getElementById('score').value);
 if(!score){
 score=0;
 }
 score += 1;
 document.getElementById('score').value = score;
 }
<!--ADD POINTS-->
<input type="text" id="score" />
 <button onclick="add()">
    CLICK ME
 </button>


 </body>
 </html>

【讨论】:

    【解决方案2】:

    您正在使用元素的 .value 属性获取分数的初始值。对于哪个#score 元素需要作为输入字段。

    var score = parseFloat(document.getElementById('score').value);
    

    但是在 add 函数中你使用的是 innerHTML:

    document.getElementById('score').innerHTML = score;
    

    InnerHTML 不适用于输入字段。

    因此,如果您的#score 元素是输入字段,则将添加函数更改如下:

    function add() {
         score += 1;
         document.getElementById('score').value= score;
     }
    

    或者,如果它是任何其他 html 元素,例如 &lt;div&gt;&lt;p&gt; 标签,则将初始化语句更改如下:

    var score = parseFloat(document.getElementById('score').innerHtml);
    

    【讨论】:

      【解决方案3】:

      为您工作的代码。试试这个。

        function add() {
          var score = parseFloat(document.getElementById('score').value);
          score += 1;
          document.getElementById('score').value = score;
        }
      <input type="text" value="4" id="score"/>
      <button onclick="add()">
        CLICK ME
      </button>

      【讨论】:

        【解决方案4】:

        初始分数为 0,所以游戏开始时分数为 0。

        <input type="text" id="score" value="0"/>
        

        当点击按钮时调用以下函数

        function add() {
          var score = parseFloat(document.getElementById('score').value);
          score += 1;
          document.getElementById('score').value = score;
          }
        

        【讨论】:

          【解决方案5】:

          这是一个简化的解决方案,可让您将input 元素的值增加1

          const add = () => {
            const score_container = document.getElementById('score-container');
            let score = parseFloat(score_container.value);
            
            score_container.value = score + 1;
          };
          <!-- ADD POINTS -->
          
          <button onclick="add()">CLICK ME</button>
          
          <input id="score-container" type="text" value="0">

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-04
            相关资源
            最近更新 更多