parseFloat无法正常工作

时间:2018-07-10 01:49:04

标签: javascript html parsefloat

我不知道为什么会为这个简单的问题而烦恼,但是我正在尝试使用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>

5 个答案:

答案 0 :(得分:0)

我不确定您要查找的内容是什么,但是如果您只是想从文本框中获取值并想按增量显示。请参阅此代码段。

.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>

答案 1 :(得分:0)

这是一个简化的解决方案,可让您将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">

答案 2 :(得分:0)

您正在使用element的.value属性获取分数的初始值。为此,必须将#score元素作为输入字段。

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

但是在add函数中,您正在使用innerHTML:

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

InnerHTML不适用于输入字段。

因此,如果您的#score元素是输入字段,则更改如下所示的add函数:

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

或者,如果它是诸如<div><p>标签之类的其他html元素,则可以这样更改初始化语句:

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

答案 3 :(得分:0)

适合您的工作代码。试试这个。

  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,因此当游戏开始时,得分将为0。

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

单击按钮时,调用以下函数

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