程序返回undefined

时间:2016-07-10 15:03:40

标签: javascript arrays undefined

我尝试填写表单,但它只返回undefined。阵列中会有更多代码。



var codes = ["OHLV-NF12-KTV7-VELO-QPX5"]
var i = 0;
while(i>codes.length){
document.getElementsByClassName('redeem-input-text-box id-track-click')[0].value=codes[i];
i++
}




2 个答案:

答案 0 :(得分:1)

var i = 0 codes.length = 1 使用 while(i> codes.length){从不运行代码因为0不大于1.

所以,

更改:

 while(i>codes.length){

致:

 while(i<codes.length){

示例:

&#13;
&#13;
<html>
<head>
</head>
    <body>
	   <p class="redeem"></p>
        <script>
            var codes = ["OHLV-NF12-KTV7-VELO-QPX5"];
            var i = 0;
            while(i<codes.length){
            document.getElementsByClassName("redeem")[0].innerHTML=codes[i];
            i++
            }
        </script>
    </body>     
</html> 
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您必须检查循环索引是否小于长度。但是,在这里返回undefined的东西是没有意义的。也许你的元素不是HTML输入。

var codes = ["OHLV-NF12-KTV7-VELO-QPX5"];

var i = 0,
    len = codes.length;

var field = document.getElementsByClassName('redeem-input-text-box id-track-click')[0];

while(i < len){
    field.value = codes[i];
    i ++;
}

无论如何,for看起来更简单:

for(expression; condition exp; action exp)

这样:

for(var i = 0, len = codes.length; i < len; i ++) {
    field.value = codes[i];
}