简体   繁体   English

声明的变量返回“未定义”

[英]Declared variable returns 'undefined'

I have tried everything I can think of to resolve the fact that my variable is returning 'undefined'. 我已经尝试了所有可以想到的方法来解决我的变量返回“未定义”的事实。

I have gone console.log crazy checking everything is working as it should be and am now up against the proverbial brick wall. 我走到console.log疯狂地检查一切是否正常,现在靠着众所周知的砖墙。

The script is located just before the closing body tag. 脚本位于结束body标签之前。

I tried putting it in the head section of the page but this began returning NaN on the variables R and X. 我尝试将其放在页面的开头部分,但这开始在变量R和X上返回NaN。

Putting the variables just after the opening script tag before calling the function did likewise. 同样,在调用函数之前将变量放在打开脚本标签之后。 I am somewhat new to javascript and would very much appreciate any help. 我对javascript有点陌生,非常感谢您的帮助。

function DisplayInputValues() {

    var funds = document.getElementById("funds").value;
    var s = document.getElementById("sum").innerText;
    var j = document.getElementById('debt').value; //number of input fields

    var txtin; //class name of text input element
    var numin; // class name of number input element

    var L = 0;

    while (L < j) {

        console.log('funds= ' + funds); //just checking amount of funds shows correctly 
        console.log('debt = ' + s); //just checking Debt sum shows correctly
        console.log('Loop = ' + L);

        var userinput1 = document.getElementsByClassName('txtin')[L].value;
        console.log('Loop = ' + L + ' Text input = ' + userinput1);
        document.getElementById("showresults").innerHTML += userinput1 + "<br />";

        var userinput2 = document.getElementsByClassName('numin')[L].value;
        console.log('Loop = ' + L + ' Number input = ' + userinput2);
        document.getElementById("showresults").innerHTML += userinput2 +
            "<br/>" + 'Amount To Offer : ' + X + "<br />" + "<br />";

        var FP = funds / 100; // 1% of funds available
        var SP = s / 100; // 1% of debt total  
        var R = userinput2 / SP;
        R = R.toFixed(2);
        var X = FP * R;
        X = X.toFixed(2); //amount to offer in settlement

        console.log('Loop = ' + L + ' FP = ' + FP);
        console.log('Loop = ' + L + ' SP = ' + SP);
        console.log('Loop = ' + L + ' R = ' + R);
        console.log('Loop = ' + L + ' X = ' + X);
        console.log('Loop = ' + L + ' Amount to offer = ' + X);
        console.log('');

        L = L + 1;
    }
}

屏幕截图

Output everything after calculation 计算后输出所有内容

X is used before you declared it. 在声明X之前先使用它。 In your original code you had 在您的原始代码中

document.getElementById("showresults").innerHTML += userinput2 + "<br/>" + 'Amount To Offer : ' + X + "<br />" + "<br />";

before X was declared so of course it is going to give you undefined 在声明X之前,所以它当然会给您未定义的

I have changed the order of things so that X is first calculated then used 我改变了事物的顺序,以便先计算X然后使用X

    var userinput1 = document.getElementsByClassName('txtin')[L].value;
    var userinput2 = document.getElementsByClassName('numin')[L].value;

    var FP = funds / 100; // 1% of funds available
    var SP = s / 100; // 1% of debt total  
    var R = userinput2 / SP;
    R = R.toFixed(2);
    var X = FP * R;
    X = X.toFixed(2); //amount to offer in settlement

    console.log('Loop = ' + L + ' Text input = ' + userinput1);
    document.getElementById("showresults").innerHTML += userinput1 + "<br />";

    console.log('Loop = ' + L + ' Number input = ' + userinput2);
    document.getElementById("showresults").innerHTML += userinput2 +
        "<br/>" + 'Amount To Offer : ' + X + "<br />" + "<br />";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM