无法读取未定义的属性“长度”

时间:2013-06-25 06:32:12

标签: javascript jquery

for (i = 0; i < count; i++) {
    var item = list.childNodes[i]._value;
    var RecID = item.RecID;
    var zerocount = 5 - RecID.length;
    var PicZeros = "";
    for (k = 0; k < zerocount; k++)
        PicZeros += "0";
    var url = "/p_" + PicZeros + RecID + "_01.jpg";
}

我收到此错误:

TypeError: Cannot read property 'length' of undefined 

我不明白如何修复它?

3 个答案:

答案 0 :(得分:2)

嗯,在某些时候,list.childNodes[i]._value.RecID给你一个未定义的值。

这是问题的根本原因,您需要修复它。

也许count是错误的,也许你已经严重填充了这个列表,我们无法从给出的代码中得知。

  

而且,顺便说一下,我几乎可以肯定,有更好的方法可以使用0个字符来填充字符串而不是循环。类似的东西:

var url = "/p_" + "00000".substring(RecID.length) + RecID + "_01.jpg";
  

会更好。

答案 1 :(得分:0)

试试这个

for (i = 0; i < count; i++) {
    var item = list.childNodes[i]._value;
    var RecID = item.RecID;
    if (RecID){
        var zerocount = 5 - RecID.length;
        var PicZeros = "";
        for (k = 0; k < zerocount; k++)
            PicZeros += "0";
        var url = "/p_" + PicZeros + RecID + "_01.jpg";
    }
}

答案 2 :(得分:0)

`item.getAttribute('RECID')`

OR

<script>

之后放置<body>标记

喜欢

<html> 
<body>
 </body>
<script>
</script>
 </html>