IE9 Javascript генерирует таблицу
Привет у меня проблема только в 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 ответ
Есть ли какая-то особая причина, по которой вы не используете шаблоны или рули jQuery (или любую другую библиотеку шаблонов в этом отношении), чтобы помочь вам с динамической генерацией?
Я думаю, что проблема с IE заключается в том, что он не создает элемент TBODY по умолчанию, если у вас нет его в разметке. Я думаю, что другие браузеры создают этот элемент неявно, если его нет.
Попробуйте добавить элемент tbody вручную в разметке.