这是什么魔法?

时间:2014-01-01 20:08:33

标签: javascript

我试图让一个按钮添加1,另一个按钮使用下面的代码添加2。它出现了各种各样的错误..你只能使用按钮+2一次(然后你必须使用+1按钮,否则再次按+2不会做任何事情)并使用+ 1个按钮会在您添加2之前添加1(使用+2按钮)。如果您输入一个数字作为输入,并且您第一次使用+1按钮时会给出您输入的确切数字...... +2按钮不会这样做..

我应该改变什么以及发生了什么?

<title>testingstuff</title>
<script type = "text/javascript">


var givenNumber = parseFloat(prompt("Give a number to start with"))
var givenNumber2 = givenNumber


function addingFunc() 
{
    document.getElementById('result').innerHTML = givenNumber2 ++ ;
};

function addingFunc2()
{
    document.getElementById('result').innerHTML = givenNumber2 + 2;
};

<button id="add_number" onclick="addingFunc()">Add 1 to number</button>
<br />
<button id="add_number" onclick="addingFunc2()">Add 2 to number</button>
<br />
<div id="result"></div>

1 个答案:

答案 0 :(得分:2)

背后的机制实际上很容易。您将div的内容替换为givenNumber2 + 2。您不要在additionalFunc2 中修改givenNumber2。试试这个:

function addingFunc2()
{
    givenNumber2 += 2;
    document.getElementById('result').innerHTML = givenNumber2;
};

远非魔法......

addingFunc1落后的原因是运算符优先。 givenNumber2++在<{strong>>设置innerHTML后更新数字。使用++givenNumber2或只是遵循上述相同的规则。