innerHTML在IE中報(bào)錯(cuò)解決方案
問(wèn)題:開(kāi)發(fā)過(guò)程中,用到循環(huán)往table里面插入tr標(biāo)簽,然后tr里又循環(huán)插入td,在其它瀏覽器都沒(méi)問(wèn)題,但是在IE9及以下版本中都報(bào)錯(cuò):

google上得到答案:由于我之前不知道錯(cuò)誤的原因,在百度找不到解決方法,后來(lái)用谷歌搜到了,外國(guó)有人也遇到過(guò)這個(gè)問(wèn)題,并指出了問(wèn)題的所在:http://www.aachin.info/techen/error-on-ie-9-script600-invalid-target-element-for-this-operation/?amp;utm_source=rss&utm_medium=rss&utm_campaign=error-on-ie-9-script600-invalid-target-element-for-this-operation
演示代碼:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>默認(rèn)標(biāo)題</title>
</head>
<body>
<table id="mytable" border="1" cellpadding="1" cellspacing="0">
<tr>
<td>222</td>
</tr>
</table>
<script type="text/javascript">
var mytable = document.getElementById('mytable');
var tr = mytable.getElementsByTagName('tr')[0];
var td = mytable.getElementsByTagName('td')[0];
//讀取innerHTML(IE任何版本都不報(bào)錯(cuò),IE6未測(cè))
alert(mytable.innerHTML);
alert(tr.innerHTML);
alert(td.innerHTML);
//寫(xiě)入innerHTML
// mytable.innerHTML = '<tr><td>11111</td></tr>'; //IE9及以下報(bào)錯(cuò)
// tr.innerHTML = '<td>11111</td>'; //IE9及以下報(bào)錯(cuò)
// td.innerHTML = '11111'; //所有版本不報(bào)錯(cuò)(IE6未測(cè))
//解決方法,使用DOM的原始操作方法或者表格操作方法
// var btnRow = mytable.insertRow();
// var cell = btnRow.insertCell(btnRow.getElementsByTagName('td').length);
// cell.innerHTML = "some html text";
</script>
</body>
</html>
得出結(jié)論:IE9及以下版本的table以及tr的innerHTML屬性都是只讀的,你可以用它讀取table或者tr中的值,但不能寫(xiě)入,寫(xiě)入就報(bào)錯(cuò),另外在IE9及以下版本中td的innerHTML可讀可寫(xiě)。解決方法:使用原始的DOM操作方法或者表格操作方法見(jiàn)演示代碼。
- javascript innerHTML、outerHTML、innerText、outerText的區(qū)別
- innerhtml用法 innertext用法 以及innerHTML與innertext的區(qū)別
- IE6-IE9不支持table.innerHTML的解決方法分享
- innerHTML與jquery里的html()區(qū)別介紹
- 放棄用你的InnerHTML來(lái)輸出HTML吧 jQuery Tmpl不詳細(xì)講解
- js innerHTML 改變div內(nèi)容的方法
- IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案
- innerHTML動(dòng)態(tài)添加html代碼和腳本兼容多個(gè)瀏覽器
相關(guān)文章
javascript如何實(shí)現(xiàn)create方法
這篇文章主要介紹了javascript如何實(shí)現(xiàn)create方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
JS數(shù)據(jù)雙向綁定原理與用法實(shí)例分析
這篇文章主要介紹了JS數(shù)據(jù)雙向綁定原理與用法,結(jié)合實(shí)例形式分析了JavaScript數(shù)據(jù)雙向綁定相關(guān)原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-11-11
js實(shí)現(xiàn)橫向伸展開(kāi)的二級(jí)導(dǎo)航菜單代碼
這篇文章主要介紹了js實(shí)現(xiàn)橫向伸展開(kāi)的二級(jí)導(dǎo)航菜單代碼,涉及javascript鼠標(biāo)事件及頁(yè)面元素遍歷的相關(guān)技巧,需要的朋友可以參考下2015-08-08
javascript中Date對(duì)象的使用總結(jié)
本文介紹了Date對(duì)象的使用方法,清晰明了,實(shí)現(xiàn)方法有多種,僅供大家參考,希望對(duì)大家有所幫助,下面就跟小編一起來(lái)看看吧2016-11-11
js 實(shí)現(xiàn)打印網(wǎng)頁(yè)中定義的部分內(nèi)容的代碼
有時(shí)候頁(yè)面需要打印功能,如果再做一個(gè)頁(yè)面不利于優(yōu)化,兩個(gè)頁(yè)面內(nèi)容一樣了,所以可以用js實(shí)現(xiàn)內(nèi)容的打印不需要的就不打印。2010-04-04

