色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

IE 下的只讀 innerHTML

今天做東西遇到一個問題,我試圖動態(tài)為一個表格添加多行數(shù)據(jù),先定義了一個table:
復(fù)制代碼 代碼如下:
<table>
<thead>
</thead>
<tbody id="filelist">
</tbody>
</table>

然后在JavaScript 中這樣操作:
復(fù)制代碼 代碼如下:
for(var i in entries){
...
var filetable = document.getElementById('filelist');
filetable.innerHTML += '<tr><td>111</td><td>222</td></tr>';
}

在FireFox 下這么干是沒有問題的,但是放到 IE 下面就死活不行了,問了下同事+搜索了一下,發(fā)現(xiàn)在 IE 下 COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 這些元素的 innerHTML 屬性都是只讀的,不能直接操作。但是也不是沒有解決辦法,TD 的innerHTML 還是可以操作的,上面的代碼可以這樣修改:
復(fù)制代碼 代碼如下:
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 方法創(chuàng)建 tr 和 td,然后對 td 的 innerHTML 進(jìn)行相應(yīng)操作,最后用 appendChild 方法把創(chuàng)建的元素添加到 DOM 樹中。這樣在 IE 下就可以正常運(yùn)行了。需要注意的是,如果你的 table 沒有 tbody,而是這樣:
<table id="filelist"></table>
這個時(shí)候就不能對 table 直接使用 appendChild 方法了,因?yàn)镮E6 下 table 元素是不支持 appendChild 方法的(IE8 貌似已經(jīng)支持了)。
網(wǎng)上也有人提出用 insertRow() 等方法來做,不過這個方法對不同瀏覽器的兼容也是有問題的(在FireFox 下就需要使用 insertRow(-1) ),所以就沒用。
BTW,雖然之前也有意識地看了不少 JS 的資料,但還是實(shí)踐出真知啊,現(xiàn)在剛開始手忙腳亂的,學(xué)習(xí)淡定ING

JavaScript技術(shù)IE 下的只讀 innerHTML,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 西乌珠穆沁旗| 扎鲁特旗| 广汉市| 离岛区| 安泽县| 资阳市| 牡丹江市| 宜都市| 刚察县| 泸溪县| 长沙县| 东至县| 宣汉县| 类乌齐县| 临桂县| 阳泉市| 阳信县| 连云港市| 彝良县| 区。| 墨竹工卡县| 揭阳市| 鄂托克旗| 浠水县| 淄博市| 莲花县| 武功县| 合阳县| 茂名市| 岳阳县| 宁晋县| 若羌县| 静宁县| 元朗区| 南城县| 临潭县| 新巴尔虎右旗| 岐山县| 乌恰县| 启东市| 津市市|