属性未定义,但控制台.log可以看到它

property undefined but console.log can see it

本文关键字:log 未定义 控制台 属性      更新时间:2023-09-26

我正在创建一个由sku,qty和小计组成的动态表单。因此,表单从没有输入开始,并在用户搜索产品时填写。按下键后,我需要计算总量并通过javascript显示给用户。

我正在使用在按键时通过getElementsByClassName获取所有数量输入元素并计算所有值。 但是浏览器返回错误(未捕获的类型错误:无法读取未定义的属性"值"),但我可以记录该值。

我只使用原生JavaScript no jQuery。

    qtyelements = document.getElementsByClassName('qty-element');
    var x;
    var count = 0;
    for(x = 0; x <= qtyelements.length; x++){
        console.log(qtyelements[x].value);
        count = count + parseInt(qtyelements[x].value);
    }

这是我的图片问题

长度为您提供项目数,但集合从零开始。例如,虽然长度可能是三个,但你只循环到两个(0,1,2)。

所以改变:

x <= qtyelements.length

自:

x < qtyelements.length

在您的情况下,看起来您只有两个元素,因此索引将是 0 和 1,但您检查 2 是否存在于 <= 中,因此未定义。