Не уверен, что я упускаю что-то очевидное, поскольку я впервые пытаюсь сделать многое с необработанным API-интерфейсом DOM (в отличие от jQuery или подобного).
Рассмотрим следующий код, где я вручную создаю TBODY с document.createElement, а затем устанавливаю его innerHTML.
<table id="myTable">
</table>
<script type='text/javascript'>
var row = "<tr><td><span>col1</span></td><td>col2</td></tr>";
var render = function(){
var table = document.getElementById('myTable');
var tbody = document.createElement('tbody');
tbody.innerHTML = row;
table.appendChild(tbody);
console.log(tbody.innerHTML);
};
$(document).ready(function(){
render();
});
</script>
В Chrome и FF это работает так, как я думал - давая мне таблицу и т. Д. Однако в IE9, похоже, первые HTML-теги в innerHTML удаляются. то есть вместо
<TR><TD><SPAN>col1</SPAN></TD><TD>col2</TD></TR>
Я получаю
<SPAN>col1</SPAN></TD><TD>col2</TD></TR>
JSFiddle из вышеперечисленного: http://jsfiddle.net/pAJwu/
Есть идеи, что здесь происходит?