2013-10-13 53 views
2

所以,我想创造一个你点击一个按钮的事情,它打气由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对象,但任何人都可以帮助我吗?

回答

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/

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 ; 
} 
+0

我敢肯定,这将工作,但不是与CSS代码相关的数字ID,而不是JS代码?我的意思是,timesClicked ID与JS代码有任何连接吗? – Lemedli

+0

啊,所以如果你想更新你的时间点击跨度的值,那么你需要像上面那样做(我更新了答案)。 ID本身没有连接到代码中的JS代码,它只是具有相同的名称。如果你想操纵一个标签,那么你需要像上面那样用'document.getElementById'来选择它 – Stefan

1

尝试改变btnClick(n)btnClick(),改变+=n++

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()没有nnundefined的原因和:

mdb.widgets.amount += n; 
    mdb.stats.timesClicked += n; 

将是:

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