问题:开发过程中,用到循环往table里面插入tr标签,然后tr里又循环插入td,在其它浏览器都没问题,但是在IE9及以下版本中都报错:
 
google上得到答案:由于我之前不知道错误的原因,在百度找不到解决方法,后来用谷歌搜到了,外国有人也遇到过这个问题,并指出了问题的所在:
 
 
演示代码:
  1. <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <title>默认标题</title>
    </head>
    <body>
    <table id="mytable" border="1" cellpadding="1" cellspacing="0">
    <tr>
    <td>222</td>
    </tr>
    </table>
    <script type="text/javascript">
    var mytable = document.getElementById('mytable');
    var tr = mytable.getElementsByTagName('tr')[0];
    var td = mytable.getElementsByTagName('td')[0]; //读取innerHTML(IE任何版本都不报错,IE6未测)
    alert(mytable.innerHTML);
    alert(tr.innerHTML);
    alert(td.innerHTML); //写入innerHTML
    // mytable.innerHTML = '<tr><td>11111</td></tr>'; //IE9及以下报错
    // tr.innerHTML = '<td>11111</td>'; //IE9及以下报错
    // td.innerHTML = '11111'; //所有版本不报错(IE6未测) //解决方法,使用DOM的原始操作方法或者表格操作方法
    // var btnRow = mytable.insertRow();
    // var cell = btnRow.insertCell(btnRow.getElementsByTagName('td').length);
    // cell.innerHTML = "some html text";
    </script>
    </body>
    </html>
     
  2. 得出结论:IE9及以下版本的table以及tr的innerHTML属性都是只读的,你可以用它读取table或者tr中的值,但不能写入,写入就报错,另外在IE9及以下版本中td的innerHTML可读可写。
 
解决方法:使用原始的DOM操作方法或者表格操作方法,见演示代码。

有朋友回复说可以用jquery解决,是的,可以这个问题确实可以用jquery解决,但是其实jquery内部使用的方法,还是原始的js操作,而且,我当时的情况没法使用jquery,因为我是网上直接找的一个日历代码,它是用原生js写的,我没法在里面夹杂着jquery写。

innerHTML在IE中报错的更多相关文章

  1. js 在myeclipse中报错

    转myeclipse中的js文件报错   整理一下,希望帮到 遇到此问题的哥们.姐们. 方法一:myeclipse9 很特殊 和 myeclipse10 不一样,所以myeclipse9 不能使用该方 ...

  2. 转帖:解决jquery.js在myeclipse中报错的问题

    转载地址:http://tieba.baidu.com/p/1993753087 从官方下载的jquery.js在myeclipse始终用个大大的红叉,看着很不爽,如何解决呢:jquery.js在my ...

  3. laravel框架中报错 DataTables warning: table id=xxx-table - Cannot reinitialise DataTable.

    laravel框架中报错 DataTables warning: table id=xxx-table - Cannot reinitialise DataTable. 分析: initializin ...

  4. springboot项目中报错:listener does not currently know of SID given in connect descriptor

    springboot项目中报错:listener does not currently know of SID given in connect descriptor 出现这个问题的原因是SID写错了 ...

  5. idea中Entity实体中报错:cannot resolve column/table/...解决办法。

    idea中Entity实体中报错:cannot resolve column/table/...解决办法. 若idea中Entity实体中报错: cannot resolve column.... c ...

  6. ThinkPHP5.0中报错could not find driver的解决方式

    这个报错是我的tp5项目转移到另外的服务器中发生的错误, 其中报错信息中还包含这pdo等字眼 解决方法:在php.ini中开启php_pdp_mysql.dll

  7. jquery中报错Uncaught ReferenceError: $ is not defined的解决办法

    jquery中报错提示为:Uncaught ReferenceError: $ is not defined 这个错误的原因就是你没有引入jquery库文件或者引入的路径不对造成的

  8. Springboot打包放到Tomcat中报错 One or more listener fail to start

    1.问题: Springboot项目直接启动不报错,打war包放到外部容器Tomcat.东方通上,在@Weblistener注解的监听器类中报错 One or more listener fail t ...

  9. ubuntu16.04安装openssh中报错解决

    在使用apt-get直接进行安装时会报错: sudo apt-get install openssh-server 正在读取软件包列表... 完成 正在分析软件包的依赖关系树       正在读取状态 ...

随机推荐

  1. 哎,就硬盘还不是最掉价的,1999的自配主机,VIRTUALBOX里虚拟机,聊以自慰吧。

    安装时注意的问题,要是不测试MYSQL,则CONFIGURE参数和DISABLE-MYSQL,在编译时有提示的. 然后就是LIBTOOL包过老的问题,以及未安装LIBTOOL包的问题. 最后,是运行命 ...

  2. 启动Activity但不显示其界面

    最近在工作中做了一个很简单的任务,制作一个apk,点击该app链接到某一个网站.     代码很简单,只有如寥寥几行: (browser.java) package com.test.browser; ...

  3. Java中BitSet使用(转)

    java.util.BitSet,采用位运算: 官方API:http://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html 摘要: Bit ...

  4. 【博弈论】HDU 5754 Life Winner Bo

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754 题目大意: 4种棋子,象棋中的 1王,2车,3马,4后,选其一,B和G轮流走,不能往左上走,一 ...

  5. ISNULL-sqlserver语句

    语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式.check_expres ...

  6. C# 中dataTable中的数据批量增加至数据表中

    /// <summary> /// 批量添加 /// </summary> /// <param name="dt"></param> ...

  7. 关于unsigned int和int的加法

    补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码,可以将符号位和数值域统一处理:同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算 ...

  8. js中方法类型比较

    参考链接 http://bbs.csdn.net/topics/390775296/ function People(name){this.name=name;//对象方法this.Introduce ...

  9. OperationalError:(1054 - "Unknown column 'game.lable1' in 'field list' ")解决办法

    今天白天遇到一个错误,第一次遇到这样的问题,数据库的问题,百度了很多答案也找了很多博客文章看 问题:OperationalError:(1054 - "Unknown column 'gam ...

  10. [ES6] ... spread operator

    var parts = ['shoulders', 'knees']; var lyrics = ['head', ...parts, 'and', 'toes']; // ["head&q ...