用JavaScript显示的未定义元素

时间:2018-10-29 20:02:44

标签: javascript html dom undefined undefined-behavior

我能够使用“ line_cost”标签名称显示6个DOM元素的总和-这将作为小计显示(称为“ ST”方法)。不幸的是,在使用小计值动态计算交付成本时,我不断得到“未定义”,因为在小计工作正常的情况下,该值显示在交付成本选项卡下。 我以为该问题是由于在调用该方法之前DOM未完全加载而发生的,但是即使作出了决定if(document.getElementById("sub_total") != null),我仍然实现了“未定义”值。这种“未定义”值的出现可能是什么问题?

function calcST()
{
    var i;
    var sum = 0; // initialize the sum
    let p = document.getElementsByTagName("line_cost");

    for (i = 0; i < p.length; i++)
    {
        if (!isNaN(Number(p[i].innerHTML)))
        {
            sum = Number(sum + Number(p[i].innerHTML)); // p[i].innerHTML gives you the value
        }    
    }

    setST(sum, "sub_total");
}    

function setST(sum, item_id)
{
    let i = document.getElementById(item_id);
    i.innerHTML = sum;
    calcDelivCharge();
}    

function getST()
{
    if (document.getElementById("sub_total") != null)
    {
        let i = document.getElementById("sub_total");
        let v = i.innerHTML;
        return v;
    }
}    

function calcDelivCharge()
{    
    var delCharge;
    var e = getST();

    if (e < 100)
    {
        delcharge = e*0.10
    }
    else
    {
        delcharge = 0;
    }

    setDelivCharge("delivery_charge", delCharge);
}

function setDelivCharge(item_id, delCharge)
{
    let i = document.getElementById(item_id);
    i.innerHTML = delCharge;
    calculateTAX();
}    

function getDelivCharge()
{
    let i = document.getElementById("delivery_charge");
    let v = i.innerHTML;
    return v;
}

0 个答案:

没有答案