问题:开发过程中,用到循环往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. Cracking the coding interview--Q2.4

    Write code to partition a linked list around a value x, such that all nodes less than xcome before a ...

  2. 吃了单片机GPIO端口工作模式的大亏 ——关于强推挽输出和准双向口(弱上拉)的实际应用

    最近公司在进行一个项目,需要用到超声波测距的功能,于是在做好硬件电路,但在写控制程序时,却遇上了令我费解的事情. 当在单片机最小系统上调好输出频率40kHz,占空比50%的方波输出信号后,将程序烧至超 ...

  3. Xamarin.Forms本地化多语言

    Forms 右键新建文件夹 Localization 新建文件TranslateExtension.cs namespace Localization { /// <summary> // ...

  4. jquery序列化form表单使用ajax提交后处理返回的json数据

    1.返回json字符串: /** 将一个字符串输出到浏览器 */ protected void writeJson(String json) { PrintWriter pw = null; try ...

  5. linxu安装OSX

    下载OS X Mavericks 10.9 Retail VMware Image安装vmware10.01打开unlock-all-v110,运行install.sh 打开vmx. 更新系统. 安装 ...

  6. (转载)php之call_user_func_array的简易用法

    (转载)http://www.cnitblog.com/neatstudio/archive/2006/07/21/13990.html php之call_user_func_array的简易用法 今 ...

  7. [Design Pattern] Facde Pattern 简单案例

    Facade Pattern, 即外观模式,用于隐藏复杂的系统内部逻辑,提供简洁的接口给客户端调用,属于结构类的设计模式.我会将其名字理解为,门户模式. 下面是 Facade Pattern 的一个简 ...

  8. 微博广告推荐中有关Hadoop的那些事

    一.背景 微博,一个DAU上亿.每日发博量几千万的社交性产品,拥有庞大的数据集.如何高效得从如此规模的数据集中挖掘出有价值的信息,以增强用户粘性,提高信息传播速度,就成了重中之重.因此,我们引入了ha ...

  9. Java 中 MongoDB 使用指南

    一.引入MongoDB Java Driver包 如果需要操作MongoDB的Java项目是一个Maven项目,可以在依赖中加上以下的配置. <dependencies> <depe ...

  10. 高频交易策略之Penny Jump

    今天假设有一个笨笨的大型机构投资人(共同基金,银行,退休基金....),他想要买进一只股票,但又不想挂市价买进,所以就在市场里面挂了一张要买进的大单.这时候所有市场里面的人都会看的到limit ord ...