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

[code="java"]
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);
}

[/code]
这段js有啥问题呀?
[b]问题补充:[/b]
var row =document.createComment("tr");

这句写错了:
应该是:
var row =document.createElement("tr") ;
报错的是这行:
row.appendChild(cell);

在firefox上也报错。

8个回答





无标题文档 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); }







var row =document.createComment("tr");
这句写错了吧?

另外寻求帮助的时候最好把错误信息写全,例如js错误出现在哪一行

把这句
[code="java"]var row =document.createComment("tr"); [/code]
改成
[code="java"]var row =document.createElement("tr"); [/code]

这个是我测试的代码,没有任何错误
[code="java"]



无标题文档 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); }




我发现用这个方法给Table加上一行,还要进一步获得TBODY子节点~~在IE里可以成功加入一行,但是Firefox毫无反应

[code="java"]





无标题文档 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); }







这样给table加字段倒是firefox和IE都可以通过

[code="java"]





无标题文档 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); }







这样改就都可以跑,不会报错了

[code="java"]





无标题文档 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); }







我觉得appendChild()这个函数还是慎用吧,firefox和IE的支持好像还是不太一致

[code="js"]



无标题文档 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); }




Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐