2016-04-02 4 views
-1

Imは別の関数から値を取得しようとしていますが、私の関数getSummary()がhtmlのbodyタグのonloadに置かれる方法でspanタグにNaNを表示し続けます他の関数の値にアクセスしようとしています

function calculate(){ 
    var coke = document.getElementById('drinks-coke').value; 
    var royal = document.getElementById('drinks-royal').value; 
    var sprite = document.getElementById('drinks-sprite').value; 

    var drink1 = coke * 35; 
    var drink2 = royal * 35; 
    var drink3 = sprite * 35; 

    // "totaldrinks": 
    var totald = document.getElementById("total-drinks").innerHTML = drink1+drink2+drink3; 
} 

function calculateAddons(){ 
    var rice1 = document.getElementById('addons-rice').value; 
    var sauce1 = document.getElementById('addons-sauce').value; 
    var protein1 = document.getElementById('addons-protein').value; 
    var vegies1= document.getElementById('addons-vegies').value; 

    var addon1 = rice1 * 20; 
    var addon2 = sauce1 * 30; 
    var addon3 = protein1 * 70; 
    var addon4 = vegies1 * 50; 

    // "totaladdons": 
    var totala = document.getElementById("total-addons").innerHTML = addon1+addon2+addon3+addon4; 
} 

function getSummary() { 
    var riceData = document.getElementById("ricingbowlfinal").getAttribute("value"); 
    var deliveryData = document.getElementById("deliverycharge").getAttribute("value") 
    var totalbill = parseInt(riceData) + parseInt(deliveryData); 
    var totaldr = calculateAddons("totala") 
    var totalad = calculate("totald") 

    document.getElementById("summarys").innerHTML = totalbill + totaldr + totalad; 
} 
+1

最初の2つの関数からは何も返されません。 –

+0

@RajaprabhuAravindasamyは私を助けることができますか? –

+0

'return totald;'、 'return totala;' - 本当にハードではありません;) –

答えて

0

あなただけの(例えば)から一つの値が必要な場合は値を返すためにそれを変更し、計算:

var total = calculate(); 
:コードを呼び出す

function calculate(){ 
    var coke = document.getElementById('drinks-coke').value; 
    var royal = document.getElementById('drinks-royal').value; 
    var sprite = document.getElementById('drinks-sprite').value; 

    var drink1 = coke * 35; 
    var drink2 = royal * 35; 
    var drink3 = sprite * 35; 

    // "totaldrinks": 
    var totald = document.getElementById("total-drinks").innerHTML = drink1+drink2+drink3; 

    return totald; 
} 

はその後でその値を取得することができます

0

文が計算()とcalculateAddons() から欠落しているリターンはここでは、戻り値を必要とし、あなたがあなたの関数を呼び出す方法を修正するために、ソリューション、

function calculate(){ 
    var coke = document.getElementById('drinks-coke').value; 
    var royal = document.getElementById('drinks-royal').value; 
    var sprite = document.getElementById('drinks-sprite').value; 

    var drink1 = coke * 35; 
    var drink2 = royal * 35; 
    var drink3 = sprite * 35; 

    // "totaldrinks": 
    var totald = document.getElementById("total-drinks").innerHTML = drink1+drink2+drink3; 
    return totald; 
} 

function calculateAddons(){ 
    var rice1 = document.getElementById('addons-rice').value; 
    var sauce1 = document.getElementById('addons-sauce').value; 
    var protein1 = document.getElementById('addons-protein').value; 
    var vegies1= document.getElementById('addons-vegies').value; 

    var addon1 = rice1 * 20; 
    var addon2 = sauce1 * 30; 
    var addon3 = protein1 * 70; 
    var addon4 = vegies1 * 50; 

    // "totaladdons": 
    var totala = document.getElementById("total-addons").innerHTML = addon1+addon2+addon3+addon4; 
    return totala; 
} 

function getSummary() { 
    var riceData = document.getElementById("ricingbowlfinal").getAttribute("value"); 
    var deliveryData = document.getElementById("deliverycharge").getAttribute("value") 
    var totalbill = parseInt(riceData) + parseInt(deliveryData); 
    var totaldr = calculateAddons("totala") 
    var totalad = calculate("totald") 

    document.getElementById("summarys").innerHTML = totalbill + totaldr + totalad; 
} 
1

です。呼び出されると関数に文字列を渡しますが、これは不要です。

function calculate(){ 
    //... 

    // "totaldrinks": 
    var totald = document.getElementById("total-drinks").innerHTML = drink1+drink2+drink3; 
    return totald; 
} 

function getSummary() { 
    var riceData = document.getElementById("ricingbowlfinal").getAttribute("value"); 
    //... 

    var totalad = calculate() 

    document.getElementById("summarys").innerHTML = totalbill + totaldr + totalad; 
} 

これでいいはずです。

関連する問題