最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

IE下的只读innerHTML_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:44:03
文档

IE下的只读innerHTML_javascript技巧

IE下的只读innerHTML_javascript技巧:今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 代码如下: 然后在JavaScript 中这样操作: 代码如下: for(var i in entries){ ... var filetable = document.getElementById('f
推荐度:
导读IE下的只读innerHTML_javascript技巧:今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 代码如下: 然后在JavaScript 中这样操作: 代码如下: for(var i in entries){ ... var filetable = document.getElementById('f


今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table:
代码如下:







然后在JavaScript 中这样操作:
代码如下:
for(var i in entries){
...
var filetable = document.getElementById('filelist');
filetable.innerHTML += '111222';
}

在FireFox 下这么干是没有问题的,但是放到 IE 下面就死活不行了,问了下同事+搜索了一下,发现在 IE 下 COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 这些元素的 innerHTML 属性都是只读的,不能直接操作。但是也不是没有解决办法,TD 的innerHTML 还是可以操作的,上面的代码可以这样修改:
代码如下:
for(var i in entries){
...
var filetable = document.getElementById('filelist');
var tr = document.createElement('tr');
var td1 = document.createElement('td');
td1.innerHTML = '111';
var td2 = 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,而是这样:

这个时候就不能对 table 直接使用 appendChild 方法了,因为IE6 下 table 元素是不支持 appendChild 方法的(IE8 貌似已经支持了)。
网上也有人提出用 insertRow() 等方法来做,不过这个方法对不同浏览器的兼容也是有问题的(在FireFox 下就需要使用 insertRow(-1) ),所以就没用。
BTW,虽然之前也有意识地看了不少 JS 的资料,但还是实践出真知啊,现在刚开始手忙脚乱的,学习淡定ING

文档

IE下的只读innerHTML_javascript技巧

IE下的只读innerHTML_javascript技巧:今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 代码如下: 然后在JavaScript 中这样操作: 代码如下: for(var i in entries){ ... var filetable = document.getElementById('f
推荐度:
标签: 技巧 IE js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top