從一個解決的案例延續一個新問題。以下代碼計算從另一個腳本通過ajax加載的值。以另一種形式的一系列選項決定了哪些信息被加載,因此最終的計算是什麼。計算通過jquery加載的值
問題是,一旦你加載了所有可用的選項,你就無法將它們加載出來,而將所有字段總和相加的腳本事實上在這一點上會失敗。因此,例如,如果您加載了2個選項,它將達到總數。加載三分之一,它會加起來的總數3.取出一個選項,然後腳本失敗。我相信這是值得做的腳本讀取的產品ID — var productIds = {};
任何幫助,將不勝感激
這裏的方式是代碼
var productIds = {};
function product_totals(id) {
productIds[id] = true; // store all id's as the totals are calculated
var quantity = $c('product_quantity_' + id).value;
var price = $c('product_price_' + id).value;
var duration = $c('product_duration_' + id).value;
var dives = $c('product_dives_' + id).value;
var hire = $c('product_hire_' + id).value;
Number($c('product_price_total_' + id).value = price * quantity);
Number($c('product_duration_total_' + id).value = duration * quantity);
Number($c('product_dives_total_' + id).value = dives * quantity);
Number($c('product_hire_total_' + id).value = hire * quantity);
function $c(id) {
return document.getElementById(id);
}
var totalPriceTotal = 0;
var totalDurationTotal = 0;
var totalDivesTotal = 0;
var totalHireTotal = 0;
for (var id in productIds) {
// multiply by 1 to make sure it's a number
totalPriceTotal += $c('product_price_total_' + id).value * 1;
totalDurationTotal += $c('product_duration_total_' + id).value * 1;
totalDivesTotal += $c('product_dives_total_' + id).value * 1;
totalHireTotal += $c('product_hire_total_' + id).value * 1;
}
$c('GT_total_price').value = totalPriceTotal;
$c('GT_total_duration').value = totalDurationTotal;
$c('GT_total_dives').value = totalDivesTotal;
$c('GT_total_hire').value = totalHireTotal;
function $c(id) {
return document.getElementById(id);
}
}
在http://www.divethegap.com/update/diving-trips/adventure-training/#level_01工作樣本(點擊初學者)非常感謝
排序,不太確定那會很好。這些選項決定了右側加載的內容。加載的產品包含信息(價格等....)。當選項被取消時,它的關聯產品從右側裝載。上面的腳本計算右側的信息,但在產品加載完成時不會更新其ProductID集合。任何想法。 – 2010-12-02 15:48:01