问题描述
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错误出现在哪一行