2011-07-12 6 views
1

こんにちは私は現在、HTML DOMを実践しており、この関数を使って動的テーブルを作成しています。html dom Internet Explorerの動的テーブル

function initScheduleTable() { 
    var days = new Array("MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"); 
    var table = document.getElementById("schedule"); 
    var hourPerDay = 24; 
    var row, cell; 
    var i, j; 

    // Time headers 
    row = table.insertRow(-1); 
    cell = row.insertCell(-1); 

    for(i = 0; i < hourPerDay; ++i) { 
     cell = row.insertCell(-1); 
     if(i < 10) 
      cell.innerHTML = "0" + i; 
     else 
      cell.innerHTML = i; 
    } 

    for(i = 0; i < days.length; ++i) { 
     row = table.insertRow(-1); 
     cell = document.createElement("th"); 
     cell.innerHTML = days[i]; 
     row.appendChild(cell); 

     for(j = 0; j < hourPerDay; ++j) { 
      cell = row.insertCell(-1); 
      cell.innerHTML = "&nbsp;"; 
     } 
    } 
} 

これはChromeとFirefoxでは有効ですがIE9では正常に動作します。 IEでは、一番右の列に日が表示されます。私はIEの開発者のツールを使用してソースを確認し、それはのリストの最後に<th>が記載されていることを示しています。

この場合、IEには何か注意が必要ですか?

答えて

1

いくつかの不合理な理由から、IEはTHセルが行末になければならないと考えています。各行のTHをTDに変更し、CSSを使用してそのテキストを太字にしてTHのようにします。

+1

テキストを太字に設定すると同時に、THはテキストも中央に配置します。私は参照してください – mrk

+0

。 IEをそう思う理由は何か分かりますか? – PSWai

+0

私は分かりません。私はこれまでにこれを見たことはありませんが、IE 6にはありますが、少なくとも10年ほど前から存在していたと思います。この種の不明瞭なバグを発見することは、そのような議論に参加することの価値の一部です。 :-) – RobG

関連する問題