国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

IE 下的只讀 innerHTML

2024-08-26 00:09:37
字體:
來源:轉載
供稿:網友

今天做東西遇到一個問題,我試圖動態為一個表格添加多行數據,先定義了一個table:

123456
<table><thead></thead><tbody id="filelist"></tbody></table>

然后在javascript 中這樣操作:

12345
for(var i in entries){  ...  var filetable = 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 還是可以操作的,上面的代碼可以這樣修改:

123456789101112
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,而是這樣:

1
<table id="filelist"></table>

這個時候就不能對 table 直接使用 appendchild 方法了,因為ie6 下 table 元素是不支持 appendchild 方法的(ie8 貌似已經支持了)。

網上也有人提出用 insertrow() 等方法來做,不過這個方法對不同瀏覽器的兼容也是有問題的(在firefox 下就需要使用 insertrow(-1) ),所以就沒用。

btw,雖然之前也有意識地看了不少 js 的資料,但還是實踐出真知啊,現在剛開始手忙腳亂的,學習淡定ing

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东宁县| 呼和浩特市| 通江县| 美姑县| 武清区| 芜湖县| 巴林右旗| 颍上县| 西华县| 二手房| 湖口县| 高雄市| 天峨县| 郯城县| 华池县| 定州市| 开鲁县| 河东区| 龙门县| 中阳县| 新泰市| 青州市| 武宁县| 城市| 铜梁县| 金乡县| 徐水县| 彭山县| 开原市| 雷波县| 澎湖县| 横峰县| 绥化市| 万州区| 锡林郭勒盟| 临猗县| 沙洋县| 三门峡市| 庆云县| 陈巴尔虎旗| 黔江区|