IE9的createElement和设置innerHTML上的删除标签的集合操作



不确定我是否错过了一些明显的东西,因为这是我第一次尝试使用原始DOM api(而不是通过jQuery等)。

考虑下面的代码,其中我手动创建了一个带有文档的TBODY。然后设置它的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中,innerHTML中的第一个HTML标签似乎被删除了。即,而不是

<TR><TD><SPAN>col1</SPAN></TD><TD>col2</TD></TR>

<SPAN>col1</SPAN></TD><TD>col2</TD></TR>

上面的一个JSFiddle: http://jsfiddle.net/pAJwu/

你知道这是怎么回事吗?

ie9之前的版本不支持在某些元素上设置innerHTML。这是为什么;该链接还包括可能的解决方案。

最新更新