2010-12-02 62 views
0

從一個解決的案例延續一個新問題。以下代碼計算從另一個腳本通過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工作樣本(點擊初學者)非常感謝

回答

0

如果我明白了,你想要實現的是在數組中堆積一個ID集合,從中可以移除項目以便計算只有選定的選項。我將聲明var productIds = [];並使用productIds.push(id)在其中添加ID。當你刪除一個選項時,你可以使用productids.splice(indexofId, 1);。當你recalcultate你只會有你想要的ID。

+0

排序,不太確定那會很好。這些選項決定了右側加載的內容。加載的產品包含信息(價格等....)。當選項被取消時,它的關聯產品從右側裝載。上面的腳本計算右側的信息,但在產品加載完成時不會更新其ProductID集合。任何想法。 – 2010-12-02 15:48:01