js报"意外访问方法和属性“的错误,是啥原因?

问题描述

function addQuery(){ var b="test"; var row =document.createComment("tr"); var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); document.getElementById("queryList").appendChild(row);}这段js有啥问题呀?问题补充:var row =document.createComment("tr"); 这句写错了:应该是:var row =document.createElement("tr") ; 报错的是这行:row.appendChild(cell); 在firefox上也报错。

解决方案

<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script> function addQuery() { var b="test"; var row =document.getElementById("queryList").insertRow(); var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); } </script> </head> <input type="button" onclick="addQuery();"/> <table id="queryList"> </table> <body> </body> </html> 这样就可以了.
解决方案二:
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script> function addQuery() { var b="test"; [color=red]var row =document.getElementById("queryList").insertRow(); [/color]var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); } </script> </head> <input type="button" onclick="addQuery();"/> <table id="queryList"> </table> <body> </body> </html> 这样就可以了.
解决方案三:
我觉得appendChild()这个函数还是慎用吧,firefox和IE的支持好像还是不太一致
解决方案四:
这样改就都可以跑,不会报错了<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script> function addQuery() { var b="test"; var row =document.createElement("tr"); var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); document.getElementById("queryList").appendChild(row); //alert( document.getElementById("queryList").innerHTML); } </script> </head> <input type="button" onclick="addQuery();"/> <table> <TBODY id="queryList"></TBODY></table> <body> </body> </html>
解决方案五:
这样给table加字段倒是firefox和IE都可以通过<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script> function addQuery() { var b="test"; var row = queryList.insertRow(queryList.rows.length); var cell = row.insertCell(0); cell.innerHTML = b; //alert( document.getElementById("queryList").innerHTML);} </script> </head> <input type="button" onclick="addQuery();"/> <table id="queryList"> </table> <body> </body> </html>
解决方案六:
我发现用这个方法给Table加上一行,还要进一步获得TBODY子节点~~在IE里可以成功加入一行,但是Firefox毫无反应<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script> function addQuery() { var b="test"; var row =document.createElement("tr"); var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); document.getElementById("queryList").getElementsByTagName("TBODY")[0].appendChild(row); //alert( document.getElementById("queryList").innerHTML);} </script> </head> <input type="button" onclick="addQuery();"/> <table id="queryList"> </table> <body> </body> </html>
解决方案七:
把这句var row =document.createComment("tr"); 改成var row =document.createElement("tr"); 这个是我测试的代码,没有任何错误<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script>function addQuery() { var b="test"; var row =document.createElement("tr"); var cell= document.createElement("td") ; cell.appendChild(document.createTextNode(b)); row.appendChild(cell); document.getElementById("queryList").appendChild(row); } </script></head><input type="button" onclick="addQuery();"/><table id="queryList"></table><body></body></html>
解决方案八:
var row =document.createComment("tr"); 这句写错了吧?另外寻求帮助的时候最好把错误信息写全,例如js错误出现在哪一行

时间: 2024-10-04 04:35:09

js报&amp;quot;意外访问方法和属性“的错误,是啥原因?的相关文章

js报错 Object doesn&#039;t support this property or method的原因分析_javascript技巧

js报错: Object doesn't support this property or method 问题原因: 1:js代码用了javascript关键字 2:方法名和表单或者div form名冲突 3.button中有name="submit" 4.上传图片时提示:Object doesn't support this property or method 原因:服务器上安装的AspJpeg的版本低于1.4版. 解决方法:安装1.4或以上版本的AspJpeg组件. 我也遇到这个

jquery-SCRIPT65535: 意外地调用了方法或属性访问

问题描述 SCRIPT65535: 意外地调用了方法或属性访问 var $dom = $(ev.currentTarget); ev.dataTransfer.setData('dragId', $dom.attr('id')); 谷歌浏览器就没有问题,,, 求大神解决 解决方案 你好!这个问题你解决了吗? 目前我也遇到了这个问题,请告诉我怎么解决的好吗

JavaScript在IE中“意外地调用了方法或属性访问”_javascript技巧

同样一段代码,两次调用,一次通过,一次异常: function clearSelect(obj){ if(obj && obj.options) obj.options.length=0; } 以下是前人的一些经验: 这是两个经典异常,不知道原理的话很难定位.从下面的代码中可用看到发生的条件 <iframe src="javascript:'<script>top.ff1={abc:function(){}}<\/script>'" wid

js报$ is not a function 的问题的解决方法_javascript技巧

今天在做项目时,碰到了一个超奇怪的问题.我在html中的程序,跑的好好的,换成jsp在项目中跑,就一直报$ is not a function错.找了很久,试了很多,都没解决.后来,突然想到,将我引入的js文件的顺序换一下,将jquery的js文件第一个引入,别的js文件放到它后面.真的解决了问题!!!原来,在页面加载时,顺序加载引入的文件.要是jquery的js文件不是第一个被引入,那么别的js中的$.方法名就会报错.只有先引入了jquery的js文件,才能正确执行$.方法.特此备份!

详解js私有作用域中创建特权方法_javascript技巧

本文实例分享了js私有作用域中创建特权方法,供大家参考,具体内容如下 特权方法就是有权访问私有变量和私有函数的公有方法: function MyObject(){ var privateVariable = 10; function privateFunction(){ return false; } this.publicMethod = function(){ privateVariable ++; return privateFunction(); }; } var x = new MyO

js在浏览器兼容教程:DOM方法及对象引用

文章简介:js在浏览器兼容教程:DOM方法及对象引用. 1. getElementById [分析说明]先来看一组代码: <!-- input对象访问1 --><input id="id" type="button" value="click me" ōnclick="alert(id.value)"/> 在Firefox中,按钮没反应,在IE中,就可以,因为对于IE来说,一个HTML 元素的 ID 可

JS刷新当前页面的几种方法总结

 本篇文章主要是对JS刷新当前页面的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet])                                                                                                                           参数: bForceGet,

JS 操作Array数组的方法及属性实例

 本篇文章主要是对JS操作Array数组的方法及属性进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 本文总结了Array数组的3个属性,length 属性.prototype 属性.constructor 属性使用,并附注数组对象的8个分类及多个方法使用,具体如下:   对象的3个属性 1.length 属性   length 属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1.和其他大多数不同的是

js数组去重的三种常用方法总结

 本篇文章主要是对js数组去重的三种常用方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 第一种是比较常规的方法   思路:   1.构建一个新的数组存放结果   2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比   3.若结果数组中没有该元素,则存到结果数组中  代码如下: Array.prototype.unique1 = function(){  var res = [this[0]];  for(var i = 1; i < this.length