-2

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 以外のものを使用する必要があるのでしょうか?

4

2 に答える 2

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

ただの代わりに

document.getElementById(divs[i]).style.borderWidth="medium";
于 2013-06-19T22:48:20.470 に答える
0

配列を使用する場合、長さが期待どおりに動作しないため、実行中のインデックスを使用しない方がよいでしょう。例えば:

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

何が

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

index- を使用して配列をループすると、arr[1] にアクセスしようとするとエラーが発生します。

2 つ目: インライン スタイルの代わりにクラスを使用します。コードは次のように記述する必要があります。

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';
        }
    }
}
于 2013-06-19T23:29:15.097 に答える