我正在尝试对象进行编号,这些对象可以通过拖放来添加到购物车中。因此,此代码段应检查span.amountVal
中写入的当前数字,并轻松地将“+ 1”添加到此数字,但结果始终为“1”。当我取消注释'thert(i ++);'时,代码段工作就像我想要的那样。我很困惑,这是关于什么的?
$.favList.find("div[data-asset-id="+ _itemID +"]").each(function() {
var i = $(this).find("span.amountVal").text();
// alert(i++);
$(this).find("span.amountVal").text(i++);
});
谢谢。
答案 0 :(得分:2)
i++
首先返回i
的值,然后递增它。当alert( i++ )
到位时,变量已经递增一次。
将++
放在变量前面:
$(this).find("span.amountVal").text( ++i );
或者只是添加一个,因为您正在丢弃变量:
$(this).find("span.amountVal").text( i + 1 );
答案 1 :(得分:2)
您遇到pre-increment/post-increment
问题,以下更改应解决此问题:
$.favList.find("div[data-asset-id="+ _itemID +"]").each(function() {
var i = $(this).find("span.amountVal").text();
$(this).find("span.amountVal").text(++i);
});
Pre-Increment
向i
添加一个, 然后 返回i
,而Post-Increment
为i
添加1在它返回后。
以下是StackOverflow上关于主题的类似帖子:
答案 2 :(得分:0)