Неопределенный элемент отображается с помощью JavaScript - PullRequest
0 голосов
/ 29 октября 2018

Я могу отобразить значение суммы 6 элементов DOM с именем тега "line_cost" - это отображается как промежуточный итог (рассматривается как методы "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;
}
...