2014-03-18 33 views
0

我想確定爲什麼我得到以下行爲。這是我想更新DIV:使用 - 而不是值=值 - 1不正確更新.html

<h3 id='guess-count'> 5 Guesses Remaining </h3> 

工作代碼:

這顯示startingCount變量的更新值。

非工作

$('#guess-count').html(startingCount-- + " Guesses Remaining"); 

當我踩在調試器,我看到價值是變化的,但它不是在HTML視圖表達。但是,如果我再次運行它,它會更新html值,但是它會減去它之前的任何值。下面是一個例子:

// starting value and first pass 
startingCount = 5 

$('#guess-count').html(startingCount-- + " Guesses Remaining"); 

// startingCount html display value is 5 BUT startingCount holds the value of 4 

startingCount = 4 
//second pass 
$('#guess-count').html(startingCount-- + " Guesses Remaining"); 

// startingCount html display value is 4 BUT startingCount holds the value of 3 

這似乎是顯示startingCount的當前值,然後從一箇中減去其 值。

有人知道這是爲什麼這樣嗎?看起來它在更新html之後評估'startingCount--'。

+2

如果使用'--startingCount',會發生什麼? – Andy

+2

您可能需要閱讀[算術運算符]的前綴和後綴(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators)。 – ajp15243

回答

5

這是操作順序。基本上是:

startingCount-- 

是說打印數量,然後遞減它。

你想要的是:

--startingCount 

遞減數,然後打印出來。

+0

這真的很棒。感謝您指出了這一點! – HelloWorld

+0

_「打印數字,然後減少它」_ - 也許nitpicky,但它實際上是「減少數字,然後返回以前的/原始值」 –

+0

@JasonP我只是雖然使用單詞*打印*會比*返回值*,因爲他正在更新HTML。 –