仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1084|回复: 8
打印 上一主题 下一主题

[HTML5] 来看看:IE 下的只读 innerHTML

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 23:20:38 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Resig在2008年在其博客中介绍过HTML5的data-属性,现如今HTML5在如火如荼地推广,似乎国内的技术有些延迟,这篇博文可以在这里找到。网页制造Poluoluo文章简介:明天做器材碰到一个成绩,我试图静态为一个表格增加多行数据,先界说了一个table.
明天做器材碰到一个成绩,我试图静态为一个表格增加多行数据,先界说了一个table:
  1. 123456
复制代码
  1. <table><thead></thead><tbodyid="filelist"></tbody></table>
复制代码
然后在JavaScript中如许操纵:
  1. 12345
复制代码
  1. for(variinentries){...varfiletable=document.getElementById(filelist);filetable.innerHTML+=<tr><td>111</td><td>222</td></tr>;}
复制代码
在FireFox下这么干是没有成绩的,可是放到IE上面就逝世活不可了,问了下同事+搜刮了一下,发明在IE下COL,COLGROUP,FRAMESET,HTML,STYLE,TABLE,TBODY,TFOOT,THEAD,TITLE,TR这些元素的innerHTML属性都是只读的,不克不及间接操纵。可是也不是没有办理举措,TD的innerHTML仍是能够操纵的,下面的代码能够如许修正:
  1. 123456789101112
复制代码
  1. for(variinentries){...varfiletable=document.getElementById(filelist);vartr=document.createElement(tr);vartd1=document.createElement(td);td1.innerHTML=111;vartd2=document.createElement(td);td2.innerHTML=222;tr.appendChild(td1);tr.appendChild(td2);filetable.appendChild(tr);}
复制代码
能够先利用DOM的createElement办法创立tr和td,然后对td的innerHTML举行响应操纵,最初用appendChild办法把创立的元素增加到DOM树中。如许在IE下就能够一般运转了。必要注重的是,假如你的table没有tbody,而是如许:
  1. 1
复制代码
  1. <tableid="filelist"></table>
复制代码
这个时分就不克不及对table间接利用appendChild办法了,由于IE6下table元素是不撑持appendChild办法的(IE8貌似已撑持了)。
网上也有人提出用insertRow()等办法来做,不外这个办法对分歧扫瞄器的兼容也是有成绩的(在FireFox下就必要利用insertRow(-1)),以是就没用。
BTW,固然之前也无意识地看了很多JS的材料,但仍是理论出真知啊,如今刚入手下手从容不迫的,进修淡定ING
</p>
使得W3C与非正式的WHATWG(网络超文本应用程序技术工作小组)关系开始紧张起来。这些年来,一直是WHATWG肩负起HTML的重责大任。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-15 10:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表