google上得到答案:由于我之前不知道错误的原因,在百度找不到解决方法,后来用谷歌搜到了,外国有人也遇到过这个问题,并指出了问题的所在: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>默认标题</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任何版本都不报错,IE6未测) alert(mytable.innerHTML); alert(tr.innerHTML); alert(td.innerHTML); //写入innerHTML // mytable.innerHTML = '<tr><td>11111</td></tr>'; //IE9及以下报错 // tr.innerHTML = '<td>11111</td>'; //IE9及以下报错 // td.innerHTML = '11111'; //所有版本不报错(IE6未测) //解决方法,使用DOM的原始操作方法或者表格操作方法 // var btnRow = mytable.insertRow(); // var cell = btnRow.insertCell(btnRow.getElementsByTagName('td').length); // cell.innerHTML = "some html text"; </script> </body></html>
有朋友回复说可以用jquery解决,是的,可以这个问题确实可以用jquery解决,但是其实jquery内部使用的方法,还是原始的js操作,而且,我当时的情况没法使用jquery,因为我是网上直接找的一个日历代码,它是用原生js写的,我没法在里面夹杂着jquery写。
来自为知笔记(Wiz)新闻热点
疑难解答