2016-01-30 134 views
-1

我有这个JavaScript代码在这里,只是拒绝工作。我有另一个JavaScript代码,与此一起工作,它具有定义的这些数组变量(主要是文本)。有人可以看到我在这里做错了吗?脚本根本不起作用

var ran_num = new Array[37] 

for (i = 1; i < 39; i++){ 
    document.write('<span id=' + '"pitanje' + i + '"' + '>' + '</span>') 
    ran_num[i] = Math.floor((Math.random() * 100) + 1) 
    if (i != 3 && i != 4 && i != 29){ 
     if(ran_num[i] < 30){ 
      document.getElementById("pitanje"+i).innerHTML = pitanje1[i] 
     } 
     else{ 
      document.getElementById("pitanje"+i).innerHTML = pitanje2[i] 
     } 
    } 
    else if(i == 3){ 
     document.getElementById("pitanje"+i).innerHTML = pitanje3 
    } 
    else if (i == 4) { 
     if (ran_num[i] < 30){ 
      document.getElementById("pitanje"+i).innerHTML = pitanje4_1 
     } 
     if (ran_num[i] < 60){ 
      document.getElementById("pitanje"+i).innerHTML = pitanje4_2 
     } 
      else{ 
       document.getElementById("pitanje"+i).innerHTML = pitanje4_3 
      } 
    } 
    else if (i == 29){ 
     document.getElementById("pitanje"+i).innerHTML = pitanje29 
    } 
} 
+0

检查控制台 - > _Uncaught TypeError:数组[37]不是函数_ – Andreas

+0

您是否检查过控制台中的错误?它究竟以什么方式不起作用? *什么都会发生? – Pointy

+0

那么,它应该循环38次并创建元素,然后根据当前整数,从变量中显示范围的内部HTML。如果i = 1,那么应该创建跨度,其内部HTML应该是变量pitanje1 [1]或pitanje2 [1]的内容。 但是什么都没有显示,甚至没有跨越,因为任何循环都不启动或功能拒绝工作。 – BloodDrunk

回答

2

您的数组的初始化是不正确的,尝试用这种

var ran_num = new Array(37); // this creates an aray with 37 elements that are undefined 

取代你的第一线,你可以用值填充您的阵列这样你在使用它的循环之前:

for(var i = 0; i < ran_num.length; i++) { 
    ran_num[i] = i; 
}