=波波日志 > JavaScript/Ajax > ie和firefox下操作table对象的异同=
ie和firefox下操作table对象的异同
ie和firefox下操作table对象的异同【测试浏览器版本:ie为6,firefox为2.0】
1)在ie下,table标签直接使用appendChild增加document.createElement('tr')的行时不显示,但是在firefox下是没有问题的。如下
运行上面的代码后,和描述一样吧。
解决办法就是在table标签内增加tbody标签,tbody使用appendChild时在ie和firefox下都可以显示了。
2)使用insertRow和insertCell插入行和单元格时需要注意的,在ie下可以不传递行号和列号,但是如果在firefox下,必须要传递,要不出错。【insertRow和insertCell可以为table标签也可以为tbody标签,这两则都可以用】如下
运行上面的代码在ie下可以插入行和单元格,但是在firefox下出现“uncaught exception: [Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: file:///E:/IISDebug/ajax/table.htm :: <TOP_LEVEL> :: line 32" data: no]”的错误
解决办法就是把行号和列号作为参数传入
但是要注意,传递的行号不能大于当前的行的长度,如已经有2行,你可以传递2,但是不能传递3。就如同强类型语言的数组一样,不能越界
1)在ie下,table标签直接使用appendChild增加document.createElement('tr')的行时不显示,但是在firefox下是没有问题的。如下
+展开
-HTML
<table id="table1" border='1'></table>
<script type='text/javascript'>
var tb=document.getElementById('table1');
var tr=document.createElement('tr'),td=document.createElement('td');
td.innerHTML=new Date();
tr.appendChild(td);//行增加单元格
tb.appendChild(tr);//表增加行
</script>
<script type='text/javascript'>
var tb=document.getElementById('table1');
var tr=document.createElement('tr'),td=document.createElement('td');
td.innerHTML=new Date();
tr.appendChild(td);//行增加单元格
tb.appendChild(tr);//表增加行
</script>
运行上面的代码后,和描述一样吧。
解决办法就是在table标签内增加tbody标签,tbody使用appendChild时在ie和firefox下都可以显示了。
+展开
-HTML
<table border='1'><tbody id="tbody1"></tbody></table>
<script type='text/javascript'>
var tb=document.getElementById('tbody1');
var tr=document.createElement('tr'),td=document.createElement('td');
td.innerHTML=new Date();
tr.appendChild(td);//行增加单元格
tb.appendChild(tr);//表增加行
</script>
<script type='text/javascript'>
var tb=document.getElementById('tbody1');
var tr=document.createElement('tr'),td=document.createElement('td');
td.innerHTML=new Date();
tr.appendChild(td);//行增加单元格
tb.appendChild(tr);//表增加行
</script>
2)使用insertRow和insertCell插入行和单元格时需要注意的,在ie下可以不传递行号和列号,但是如果在firefox下,必须要传递,要不出错。【insertRow和insertCell可以为table标签也可以为tbody标签,这两则都可以用】如下
+展开
-HTML
<table id="table2" border='1'></table>
<script type='text/javascript'>
var tb=document.getElementById('table2');
var tr=tb.insertRow(),td=tr.insertCell();
td.innerHTML=new Date();
</script>
<script type='text/javascript'>
var tb=document.getElementById('table2');
var tr=tb.insertRow(),td=tr.insertCell();
td.innerHTML=new Date();
</script>
运行上面的代码在ie下可以插入行和单元格,但是在firefox下出现“uncaught exception: [Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: file:///E:/IISDebug/ajax/table.htm :: <TOP_LEVEL> :: line 32" data: no]”的错误
解决办法就是把行号和列号作为参数传入
但是要注意,传递的行号不能大于当前的行的长度,如已经有2行,你可以传递2,但是不能传递3。就如同强类型语言的数组一样,不能越界
+展开
-HTML
<table id="table3" border='1'></table>
<script type='text/javascript'>
var tb=document.getElementById('table3');
var tr=tb.insertRow(tb.rows.length)//这样传递,插入在最后,你也可以传递其他的
,td=tr.insertCell(0);
td.innerHTML=new Date();
</script>
<script type='text/javascript'>
var tb=document.getElementById('table3');
var tr=tb.insertRow(tb.rows.length)//这样传递,插入在最后,你也可以传递其他的
,td=tr.insertCell(0);
td.innerHTML=new Date();
</script>
类别:JavaScript/Ajax 作者:波波 日期:2009-07-08 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(595)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(92)
- 其他(75)
- 个人日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(24)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
- ·什么是Javascript匿..
随机博文
