我對這個概念有點麻煩。我正試圖編寫一個相對簡單的腳本,它將按指定的數量增加/減少一組整數。增加/減少大量整數
該代碼在邏輯上起作用,但並不按需要。
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