2010-06-25 117 views
0

我有這樣的for循環,並且它似乎是兩次重複第一循環(X = 0),然後不執行最後一個(X = 2)For循環重複第一循環兩次

for (x=0;x<=2;x++) 
    { 
     if (document.getElementById("sub"+catCount+x).value != "") 
     { 
      if (nonums.test(document.getElementById("sub"+catCount+x).value)) 
      { 
       total = total + parseFloat(document.getElementById("sub"+catCount+x).value); 
      } 
     } 
     alert(x); 
    } 

在換句話說,我會得到兩個帶有「0」的警告框,其中一個帶有「1」,就是這樣。

任何人都可以告訴我我在這裏沒有看到什麼嗎?爲什麼它不正常地通過循環(0,1,2)?

+3

鑑於x(可能)被聲明爲全局函數,在你調用的函數中做了其他事情嗎? – Yacoby 2010-06-25 21:50:40

+2

這部分代碼不會導致問題。你能把我們指向整個網站的網址嗎? – phihag 2010-06-25 21:52:23

+0

這實際上是我在任何頁面上使用變量x的唯一地方。 – Jimmy 2010-06-25 21:53:14

回答

1

這實際上是我在任何頁面上使用 變量x的唯一地方。

It works for me

for (x=0;x<=2;x++) 
{ 
    alert(x); 
} 

您可以在控制檯上測試它。

+0

確切的代碼片段會產生相同的結果。 – Jimmy 2010-06-25 22:00:24

+1

@Jimmy:它爲我說'0',然後是'1'和'2'。 – Sarfraz 2010-06-25 22:03:06

2

我不認爲你想讓變量x在全局範圍內。與 「VAR」 關鍵詞試試:

for (var x=0;x<=2;x++) 
... 

我可以在我的地址欄粘貼這一點,它會產生0,1,2

javascript:for (var x=0;x<=2;x++) {alert(x);} 

我想它在IE,FF和Chrome 。

+0

沒有幫助。現在它變成「0,0,1,1」 ??? – Jimmy 2010-06-25 22:00:01