IE9生成的Javascript表

时间:2012-11-01 09:30:04

标签: javascript internet-explorer-9

嗨我只在IE9中遇到问题

我有一个Javascript循环,首先生成一个表

   var TABLE = widget.body.getElementsByClassName('classroom')[0];
   var TBODY = widget.createElement('tbody');

        //generate rows & Cells, 10 x 10
        var cID = 0;
        for (var r=0; r<10; r++) {
            var TR = widget.createElement('tr'); 
              for (var c=0; c<10; c++) {  
                    var TD = widget.createElement('td');
                    //TD.id="c"+cID;
                    TD.setAttribute("class",'c'+cID);
                    TD.setAttribute("id",'c'+cID);
                    TD.setAttribute("style","width:90px;");
                    TD.setAttribute("style","height:90px;");
                    cID++;
                    TR.appendChild(TD);
                }
                TBODY.appendChild(TR);
         }
         TABLE.appendChild(TBODY);

哪个可以正常

然后调用另一个函数来填充表格。

这只是功能巨大的片段!

var cell_class = cell.toString();   // it gets the cell from another loop say 'c1'
var TCell = widget.body.getElementsByClassName(cell_class)[0]; 
TCell.innerHTML="<a href='#'>image</a>"; // it fails at this point 'null or undefined'
我在HTML中的

<table id="table1" class="classroom">
                    <colgroup>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                        <col width="90" height="70"/>
                    </colgroup>
                </table>

如果我向HTML添加一个静态表,但我希望它是动态的,那么它是有效的。

这适用于除IE9之外的所有当前浏览器

任何人都可以帮忙

1 个答案:

答案 0 :(得分:0)

为什么不使用jQuery模板或把手(或任何其他模板库)来帮助您进行动态生成有什么特别的原因吗?

我认为IE的问题是,默认情况下它不会创建TBODY元素,除非你在标记中有它。我认为如果它不存在,其他浏览器会隐式创建该元素。

尝试在标记中手动添加tbody元素。