javascript - IE9 createElement 并设置 innerHTML 在设置操作中删除标签?

标签 javascript dom internet-explorer-9

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

考虑以下代码,我在其中使用 document.createElement 手动创建一个 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/

知道这里发生了什么吗?

最佳答案

IE 版本 9 不支持在某些元素上设置 innerHTMLHere's why ;该链接还包括可能的解决方法。

关于javascript - IE9 createElement 并设置 innerHTML 在设置操作中删除标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097139/

相关文章:

php - Laravel - 将 HTML Dom-Parser 响应保存到数据库

javascript - 使用 React 清除输入字段

javascript - IE 9 和 IE 10 时常无法在输入文本框中输入文字

javascript - Internet Explorer 9 和 ForeverFrames 的 Signalr 轮询问题

javascript - fetchPolicy 选项 : "no-cache" does not work in useQuery

javascript - 为什么这些绑定(bind)函数的 "this"上下文在每个新实例中都相同?

javascript - jQuery 事件父级对子级的触发效果

javascript - 返回浏览器时,modernizr 没有被调用

javascript - html dom的问题,如何获取p标签的高度?

css - 背景图片不显示 IE8