阵列具有的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以外的东西吗?
答
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';
}
}
}
你在控制台中的任何错误?请注意,普通数字(是)无效的“id”值。 – Bergi
您必须从内存中设置边框样式 – Musa
,直到您为其指定颜色,边框才是透明的。我倾向于尝试“.... .style.border =”solid 1px black“;} ..... – enhzflep