2016-04-02 2 views
-1

Im пытается получить значение от другой функции, но он продолжает отображать NaN на моем теге span, так как моя функция getSummary() помещается в onload в теге body htmlпытается получить доступ к значению для другой функции

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

Вы ничего не возвращаете из первых двух функций. –

+0

@ RajaprabhuAravindasamy может помочь мне в этом? –

+0

'return totald;', 'return totala;' - действительно не сложно;) –

ответ

0

Если вам просто нужно одно значение (например) вычислить, изменить его, чтобы вернуть значение:

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; 
} 

код вызова может затем получить это значение с:

var total = calculate(); 
0

геЬигп отсутствует Calculate() и 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; 
} 

Это должно быть сделано.

Смежные вопросы