2011-12-20 63 views
1

我正在調用一個函數onclick secVar(sec1);應該通過下面的腳本運行它,但它似乎並沒有這樣做,有人可以告訴我我做錯了什麼。我是JavaScript新手,只有腳本經驗,並且這段代碼似乎越來越不像我想要的那樣。無法獲得變量從函數傳遞onclick

<script type="text/javascript"> 
     var sec1=0; 
     var sec2=0; 
     var sec3=0; 
     function secVar(){ 
      if(sec1) { 
       sec1++; 
       document.getElementById('sec1text').innerHTML = sec1; 
      } 
      if(sec2) { 
       sec2++; 
       document.getElementById('sec2text').innerHTML = sec2; 
      } 
      if(sec3) { 
       sec3++; 
       document.getElementById('sec3text').innerHTML = sec3; 
      } 
     } 

     function largestVar(){ 
       if (sec1 >= sec2 && sec1 >= sec3) { 
        //a 
        document.getElementById('rig').innerHTML = 'Test1'; 
       } else if (sec2 >= sec1 && sec2 >= sec3) { 
        //b 
        document.getElementById('rig').innerHTML = 'Test2'; 
       } else { 
        //c 
        document.getElementById('rig').innerHTML = 'Test3'; 
       } 
      } 
    </script> 

如果有幫助,舊代碼是下面的代碼,然後我嘗試添加腳本以確定最大的變量。它增加了onclick的變量,但不再是這樣。 onclick當時包含sec1Var()

<script type="text/javascript"> 
    var sec1=0; 
    var sec2=0; 
    var sec3=0; 

    function sec1Var(){ 
    sec1++; 
    document.getElementById('sec1text').innerHTML = sec1; 
    } 

    function sec2Var(){ 
    sec2++; 
    document.getElementById('sec2text').innerHTML = sec2; 
    } 

    function sec3Var(){ 
    sec3++; 
    document.getElementById('sec3text').innerHTML = sec3; 
    }</script> 

如果有人能向我解釋我做錯了什麼,我將不勝感激。

回答

1

我認爲很難說出你的意圖是什麼。 Sparticus有它的權利如果你想要做的是看sec1,2和3當前是真還是假(0或1)。由於它們目前是錯誤的,因此Sparticus正確指出,代碼將不會執行任何操作。

但是,我不相信這實際上是你的意思。看起來您要檢查的條件是您是否嘗試增加sec1,2或3.換句話說,「如果您通過sec1,增加它並更新一段HTML」。

但變量不這樣工作。當你說secVar(sec1)你實際上說的是`secVar(0)'。我不認爲這是你的意圖。

所以,我的時間一個很大的浪費,如果我錯了,而是因爲我已經滾走,讓我們假裝我是正確的:

secVar需要能夠接受一個參數,但權現在你已經宣佈它無效了。改變它接受一個參數是第一步:

function secVar(param) { ... };

但是,這仍然不會做任何事情。因爲當你仍然使用你現有的語法傳遞「0」時。你需要將它傳遞的東西,可以進行檢查,如字符串:

secVar('sec1');

當你這樣做,你現在就可以更新狀況檢查被傳遞這串

if (param === 'sec1') { ... }

這裏有一個小提琴:http://jsfiddle.net/ch4yk/

注:

  • 小提琴包括jQuery只是爲了方便按鈕上的暴力事件綁定。這只是一個例子。你不需要jQuery;不管你想要什
  • 它目前不是做具有最大值函數的任何信息,即使該代碼是在小提琴
+0

這就是我要怎樣做,你的jsfiddle,幫助我一噸,對不起,我是有一個很難解釋我的問題。謝謝你, http://www.sprayfoamsys.com/cmsdev/index.php?page=rig-constructor – BrettAdamsGA

0

在此實現中,您的計數器都不會增加。

secVar()運行時,所有計數器都爲零。他們從不增加,因爲他們從零開始。