2013-11-01 160 views
1

我一直在学习javascript,我一直在这上面挂了一段时间。我想每按一次键加1,并且它不这样做,它只是停留在0变量不能修改divCount

<input id="numberBox" size="10" type="text"> 
<br><br> 
<input value="Double!" 
onclick="var n = document.getElementById('numberBox').value; 
n = n * 2; 
document.getElementById('numberBox').value = n"; 
input type="button"> 
<br> 
<br> 
<input value="Reset Number of Clicks" onclick="document.getElementById('divCount').innerHTML = 0;" type="button"> 
</p> 
<hr> 
    <script> 
     var count = document.getElementById('divCount').innerHTML; 
     count ++; 
     document.getElementById('divCount').innerHTML = count; 
    </script> 
    <div id='divCount'>0</div> 

我仍然在学习所以请原谅我,如果这是一个愚蠢的错误。谢谢。

+0

你检查了我的答案吗? –

回答

0
<div id='divCount'>0</div> 
<input type="button" value="add" onclick="oneUp();" /> 

<script> 
function oneUp() 
{ 
    var count = parseInt(document.getElementById('divCount').innerHTML, 10); 
    count ++; 
    document.getElementById('divCount').innerHTML = count; 
} 
</script> 
+0

非常感谢!这些信息真的帮了我很多,并且我学到了更多关于功能的知识。非常感激。 – user2946457

+0

如果有帮助,请投票 –

1

使用parseInt功能,保证count是一个整数实际上attemoting递增之前:

<script> 
    var count = parseInt(document.getElementById('divCount').innerHTML, 10); 
    count ++; 
    document.getElementById('divCount').innerHTML = count; 
</script> 

innerHTML属性您呼叫返回一个字符串。对字符串执行++操作没有什么意义。你宁愿在数字上做这件事。第二个参数表示解析字符串时的基数,在本例中为十进制(10)。

还要确保thta你已经把这个脚本你操纵股利后:

<div id="divCount">0</div> 

<script> 
    var count = parseInt(document.getElementById('divCount').innerHTML, 10); 
    count ++; 
    document.getElementById('divCount').innerHTML = count; 
</script> 

或你的时间在呼唤document.getElementById('divCount')你可能会得到空,因为DOM还没有完全加载。

+0

我添加了parseInt函数,以便数字不再是字符串,但值仍然保持为0.我将更新我的原始帖子以获取更多代码。这个想法是,用户输入一个数字,它被加倍,并且还显示了点击次数。谢谢您的帮助。 – user2946457

+1

@ user2946457因为你的div在脚本之后(它在脚本中未定义)将脚本移动到你的div标签后 –

+0

@AshkanMobayenKhiabani,好点,我已经更新了我的答案并将其考虑在内。 –

1

你必须有,当你执行你的脚本,你必须解析字符串来增加它尚未创建元素:

<div id='divCount'>0</div> 
<script> 
    var count = parseInt(document.getElementById('divCount').innerHTML, 10); 
    count ++; 
    document.getElementById('divCount').innerHTML = count; 
</script> 

如果你不想把脚本元素后(或者如果您的JS代码是在标题导入一个单独的文件),你可以将内容在负载执行的功能:

<script> 
    document.addEventListener('load', function(){ 
     var count = parseInt(document.getElementById('divCount').innerHTML, 10); 
     count ++; 
     document.getElementById('divCount').innerHTML = count; 
    }); 
</script> 
<div id='divCount'>0</div> 
0

试试这个parseInt函数()函数:

<script> 
    var count = parseInt(document.getElementById('divCount').innerHTML); 
    count++; 
    document.getElementById('divCount').innerHTML = count; 
</script> 
<div id='divCount'>0</div>