GetElementById数组不起作用

时间:2013-06-19 22:45:34

标签: javascript html

以下是Javascript代码:

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以外的东西吗?

2 个答案:

答案 0 :(得分:2)

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

而不仅仅是

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

答案 1 :(得分:0)

使用数组时最好不要使用运行索引,因为长度不是预期的行为。 例如:

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

会是什么

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

现在,如果使用索引循环数组,则在尝试访问arr [1]时会出错。

第二件事:使用class而不是内联样式。 你的代码应该用以下方式编写:

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';
        }
    }
}