阵列具有的getElementById不起作用

阵列具有的getElementById不起作用

问题描述:

下面是Javascript代码:阵列具有的getElementById不起作用

var divs = new Array("0", "c", "tb", "cn"); 
window.onload = function WindowLoad(event) { 
    for (i = 0; i < divs.length ; i++) { 
     document.getElementById(divs[i]).style.borderWidth = "medium"; 
    } 
} 

的div的ID都被存储数组中,但我很困惑,为什么它不会把周围的文本填料边界我已经到位。我可能需要使用borderWidth以外的东西吗?

+0

你在控制台中的任何错误?请注意,普通数字(是)无效的“id”值。 – Bergi

+1

您必须从内存中设置边框样式 – Musa

+0

,直到您为其指定颜色,边框才是透明的。我倾向于尝试“.... .style.border =”solid 1px black“;} ..... – enhzflep

document.getElementById(divs[i]).style.border="solid medium"; 

,而不是仅仅

document.getElementById(divs[i]).style.borderWidth="medium"; 
+2

'solid medium'对于'border-width'属性不是一个有效值'solid'是一个border-style属性的值编辑完成后:在设置'border'属性时,通常还需要指定边框颜色。 – Quentin

当使用数组其最好不要使用运行指数自预期的长度不行为。 例如:

var arr=[]; 
arr[0]="0"; 
arr[1000]=1000; 

什么现在

arr.length return now? 
the answer is **1001**. 

如果循环中使用索引 - 你会得到错误尝试访问ARR当阵列上[1]。

第二件事:使用类而不是内联样式。 你的代码应该写在下面的方法:

CSS:

myClass{ 
    border: 1px solid red; 
} 

脚本

var divs= new Array("0", "c", "tb", "cn"); 
window.onload = function WindowLoad(event) { 
    var key; 
    // The key will not loop over the real indexes of the array 
    for (key in divs) { 
     // make sure that the index we need is valid and exists. 
     if (divs.hasOwnProperty(key)){ 
      document.getElementById(divs[key]).className += 'myClass'; 
     } 
    } 
}