0
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 

我不明白如何解决它?

4

3 回答 3

2

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

是你的问题的根本原因,你需要解决它。

也许count是错的,也许你已经错误地填充了列表,我们无法从给出的代码中真正看出。

而且,顺便说一句,我几乎可以肯定,用字符左填充字符串0比使用循环更好。就像是:

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

会更好。

于 2013-06-25T06:34:14.003 回答
0

尝试

`item.getAttribute('RECID')`

或者

<script>标签放在后面<body>

喜欢

<html> 
<body>
 </body>
<script>
</script>
 </html>
于 2013-06-25T06:37:39.953 回答
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";
    }
}
于 2013-06-25T06:35:06.660 回答