Uncaught TypeError:无法读取未定义的Javascript的属性“选中”

时间:2019-06-01 13:43:15

标签: javascript

第一次运行循环,没有问题。在循环结束时以及循环每隔运行一次时就会显示get。 据我所知,.checked属性可以正常工作,只是有错误... 有人知道该怎么做吗? 我在javascript中的背景并不广泛,而且我还在学习。 谢谢。

我已经尝试过.checked === true,              .checked == checked               ...

在碟子下面的代码段中,是一个单选按钮数组。

    for (i = 0; i <= dishes.length; i++) {
       if (dishes[i].checked) {
         switch (dishesClass) {
        .........
         }
       }
     }

我希望控制台中没有错误,但是有多个错误。每次循环结束时,控制台都会显示相同的错误。

  

未捕获的TypeError:无法读取未定义的属性“选中”

2 个答案:

答案 0 :(得分:1)

在for循环中,您正在测试i是否小于或等于 dishes.lengh。您只需检查它是否小于,因为i0开始,计算中的数组索引也是如此。

所以只需将i <= dishes.length;替换为i < dishes.length;

希望有帮助

此代码将起作用

for (i = 0; i < dishes.length; i++) {
   if (dishes[i].checked) {
     switch (dishesClass) {
    .........
     }
   }
 }

Loops and Iteration上的该资源可能会对您有所帮助。

答案 1 :(得分:0)

如@Alicia所指出的,问题出在您的循环条件i<=上,而应该是i<。数组索引 i 尝试在上一次迭代中访问数组范围之外的元素。数组的索引从零开始,以数组长度-1

结尾