我对这个概念有点麻烦。我正试图编写一个相对简单的脚本,它将按指定的数量增加/减少一组整数。增加/减少大量整数
该代码在逻辑上起作用,但并不按需要。
HTML:
<table class="ebc-table">
<tr>
<td class="priceChange">4.00</td>
<td class="priceChange">16.00</td>
<td class="priceChange">31.00</td>
<td class="priceChange">51.00</td>
</tr></table>
的jQuery:
$(".applybutton").click(function(){
var adjFactor = $("#adj_factor :selected").val();
var adjAmount = $("#adj_amount").val();
if(adjFactor == "$")
{
$(".priceChange").each(function() {
var test = $(this).html();
var updateAmt = parseFloat(test) + parseFloat(adjAmount);
//if(isNaN(parseFloat(updateAmt))) // do something here eventually
return $(this).html(updateAmt);
});
}
});
每当输入的调整量和用户点击应用按钮,所有值相应地改变。正如你在上面的代码中看到的那样,每次计算总和时,它都会使用TD中存在的整数,而不是原来的起始数字......因为当然,$(this).html()每次都会改变总和计算并写入HTML。换句话说,这些款项只是堆叠在一起。
我怎么能写这个来保留原始数字,从原来的数字加/减,而不是从累加的数字?
我意识到我的解释可能会让人困惑。如果需要,我会发布一个jsfiddle。
ok ....忽略n8wrl ...这就是为什么它的评论。 – Joe 2013-05-01 20:00:55
也许使用['.data()'](http://api.jquery.com/data/)在每个节点上保留并获取原始数字? – ajp15243 2013-05-01 20:01:32
似乎没有人指出,但如果这是一个生产,收款应用程序,那么你手上有一个漏洞。您在此处执行的任何定价或折扣都需要在服务器上进行验证。客户端在网络上做的任何事情都可以由用户随意修改。除非您希望他们能够支付0.00美元(甚至是负数美元),否则您需要重复此代码并在服务器端重新验证结果。 – 2013-05-02 21:38:51