2014-03-18 35 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。 –