Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试访问另一个函数上的值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 尝试访问另一个函数上的值

Javascript 尝试访问另一个函数上的值,javascript,jquery,html,Javascript,Jquery,Html,我试图从另一个函数中获取一个值,但它通过在html的body标记中加载函数getSummary()的方式,在span标记上不断显示一个NaN function calculate(){ var coke = document.getElementById('drinks-coke').value; var royal = document.getElementById('drinks-royal').value; var sprite = document.getElem

我试图从另一个函数中获取一个值,但它通过在html的body标记中加载函数getSummary()的方式,在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;
}

如果只需要(例如)计算中的一个值,请将其更改为返回值:

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();

Calculate()和CALCULATEADONS()中缺少return语句 这是你的解决方案

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

您需要一个返回值并修复如何调用函数。在调用函数时将字符串传递给函数,但这是不必要的

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

应该可以了。

前两个函数没有返回任何内容。@RajaprabhuAravindasamy你能帮我吗?
返回totald
返回totala-真的不难;)