每次点击时更改号码?

时间:2013-10-13 15:54:16

标签: javascript function variables object

所以,我正在尝试创建一个单击按钮的东西,它将上面的数字加1。

我的HTML代码:

<center><span id="timesClicked">0</span></center>
    <button type="button" class="btn btn-default" onclick="btnClick()">Click</button>

我的JS代码:

var mdb = {
"widgets": {
    "amount":0
"stats": {
    "timesClicked":0,
           }
          }

 function btnClick(n){
mdb.widgets.amount += n;
mdb.stats.timesClicked += n;
return true 
   }

我真的不知道如何将数字链接到JS对象,有人可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

您的代码有效,但它不会随任何值递增:) 您需要n的默认值,否则每次都会添加0:

所以要么:

<center><span id="timesClicked">0</span></center>
    <button type="button" class="btn btn-default" onclick="btnClick(1)">Click</button

(注意btnClick(1)而不是btnClick())

或做:

 function btnClick(n){
   n = n || 1; // default value of n is 1
   mdb.widgets.amount += n;
   mdb.stats.timesClicked += n;
   // if you want to update the value in the page (in the DOM):
   document.getElementById('timesClicked').innerHTML = mdb.stats.timesClicked;
   return true ;
 }

答案 1 :(得分:1)

尝试将btnClick(n)更改为btnClick()并将+=n更改为++

答案 2 :(得分:1)

这可能过度简化了......我不确定需要什么对象。基本上,您需要使用它来更新HTML中的timesClicked数字:

document.getElementById("timesClicked").innerHTML = timesClicked;

我已经删除了一些目标代码,因此更容易使用。这是我正在使用的javascript:

<强>的Javascript

var timesClicked = 0;

function btnClick(){
  timesClicked ++;

document.getElementById("timesClicked").innerHTML = timesClicked;
return true 
   }

<强> DEMOS

http://codepen.io/anon/pen/FamJB

http://jsfiddle.net/xFgNk/1/

答案 3 :(得分:1)

你正在调用你的函数,没有参数n

<button type="button" class="btn btn-default" onclick="btnClick()">Click</button

你应该用这样的参数来调用它:

<button type="button" class="btn btn-default" onclick="btnClick(1)">Click</button

您的代码无法正常工作的原因是,当您btnClick()n n时,undefined将会 mdb.widgets.amount += n; mdb.stats.timesClicked += n; 并且:

0 + undefined = NaN //(Not a Number).

将是:

{{1}}