最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IE 下的只讀 innerHTML

 更新時(shí)間:2009年08月21日 00:25:25   作者:  
可以先使用 DOM 的 createElement 方法創(chuàng)建 tr 和 td,然后對(duì) td 的 innerHTML 進(jìn)行相應(yīng)操作,最后用 appendChild 方法把創(chuàng)建的元素添加到 DOM 樹(shù)中。這樣在 IE 下就可以正常運(yùn)行了。
今天做東西遇到一個(gè)問(wèn)題,我試圖動(dòng)態(tài)為一個(gè)表格添加多行數(shù)據(jù),先定義了一個(gè)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 下這么干是沒(méi)有問(wèn)題的,但是放到 IE 下面就死活不行了,問(wèn)了下同事+搜索了一下,發(fā)現(xiàn)在 IE 下 COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 這些元素的 innerHTML 屬性都是只讀的,不能直接操作。但是也不是沒(méi)有解決辦法,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,然后對(duì) td 的 innerHTML 進(jìn)行相應(yīng)操作,最后用 appendChild 方法把創(chuàng)建的元素添加到 DOM 樹(shù)中。這樣在 IE 下就可以正常運(yùn)行了。需要注意的是,如果你的 table 沒(méi)有 tbody,而是這樣:
<table id="filelist"></table>
這個(gè)時(shí)候就不能對(duì) table 直接使用 appendChild 方法了,因?yàn)镮E6 下 table 元素是不支持 appendChild 方法的(IE8 貌似已經(jīng)支持了)。
網(wǎng)上也有人提出用 insertRow() 等方法來(lái)做,不過(guò)這個(gè)方法對(duì)不同瀏覽器的兼容也是有問(wèn)題的(在FireFox 下就需要使用 insertRow(-1) ),所以就沒(méi)用。
BTW,雖然之前也有意識(shí)地看了不少 JS 的資料,但還是實(shí)踐出真知啊,現(xiàn)在剛開(kāi)始手忙腳亂的,學(xué)習(xí)淡定ING

相關(guān)文章

最新評(píng)論

咸阳市| 左权县| 韶山市| 铜川市| 金川县| 和田县| 阆中市| 平远县| 黄山市| 姜堰市| 大化| 柞水县| 寿阳县| 甘德县| 临武县| 分宜县| 张家港市| 营山县| 巴彦淖尔市| 孝义市| 玛沁县| 新余市| 巧家县| 石城县| 康保县| 泰和县| 藁城市| 云梦县| 台东市| 化州市| 通河县| 平南县| 双柏县| 射阳县| 仪陇县| 尖扎县| 平乡县| 桂东县| 德格县| 佛冈县| 浪卡子县|