• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

DOM的表格操作

昨天和今天一直在做一个利用DOM对表格进行删除行、列,添加行、列的例子,今天终于搞定了,基本的功能算是实现了。下面是完整的代码:

Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

</HEAD>

<BODY>

<TABLE id="table1" bordercolor="#00000" width="200" border="1">

   
<TR>
    
<TD>00</TD>
    
<TD>01</TD>
    
<TD>02</TD>
    
<TD>03</TD>
   
</TR>
   
<TR>
    
<TD>10</TD>
    
<TD>11</TD>
    
<TD>12</TD>
    
<TD>13</TD>
   
</TR>
   
<TR>
    
<TD>20</TD>
    
<TD>21</TD>
    
<TD>22</TD>
    
<TD>23</TD>
   
</TR>

</TABLE>
<br>
<input type="button" value="删除一行" onclick="deleRow()" >&nbsp;&nbsp;
<input type="button" value="删除一列" onclick="deleColum()" >
<BR>
<input type="button" value="增加一行" onclick="addRow()" >&nbsp;&nbsp;
<input type="button" value="增加一列" onclick="addColum()" >
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
var _table = document.getElementById("table1");

function deleRow()
{    
   _table.deleteRow(_table.rows.length
-1);
}

function deleColum()
{
   
for(var i=0; i<_table.rows.length;i++)
   {
    
var colum = _table.rows[0].cells.length;//获得第一列的格子数
    _table.rows[i].deleteCell(colum-1);
   
   }
}

function addRow()
{
   
// 创建table的一行,等于一个tr
   var trNode=_table.insertRow(_table.rows.length);
  
   
for(var j=0;j<_table.rows[0].cells.length;j++)
   {
    
// 创建一行中的一个单元格,等于一个TD
    var tdNode=trNode.insertCell(j);            
   
    
// 创建TD中的文本
    var text=document.createTextNode(j);
    
// 将文本添加到TD中
    tdNode.appendChild(text);

   }
}
function addColum()
{
   
var colum=_table.rows[0].cells.length;
   
for(var i = 0;i<_table.rows.length;i++)
   {
    
var tdNode=_table.rows[i].insertCell(colum);
    
var text=document.createTextNode(i);
    tdNode.appendChild(text);
   }
}

//-->
</SCRIPT

在写此代码的过程中有不少心得体会,和大家分享一下吧!

1.首先是在写var _table = document.getElementById("table1");这个语句时,老是提示document.getElementById为空或不是对象,之前我是把JavaScript代码放在的<head>中的,后来放到<html>中还是不行。我就上网搜一很久,才找到解决方法,下面的转载的别人的话,很有道理的!

(1). 'null'为空或不是对象:

<script type="text/javascript"> 里面加个defer=true属性试试看,

即:<script type="text/javascript" defer=true>

(2). document.getElementById为null

原因: var titab=document.getElementById("titletab");没有取到对象
解决办法:
1.在错误语句的下面加上alert(titab);调试语句,看看是否有消息框弹出
2.如果没有弹出,检查HTML代码中的是否存在"id=titletab"的<table>标签(要仔细哦,一个字母都不能错的)
3.如果标签存在,那么考虑<script>代码段的位置问题,切记包含有类似getElement代码<script>代码段 必须出现在HTML的Element之后也就是说你把<script>代码段放到</html>标签之后然后尝试

2.在DOM中对表格进行操作时,一定要注意rows是对象集合,返回的是对象数组,用[ ]。写代码一定要好好体会思想,自己动手写一写,不能眼高手低。一定要仔细,小到一个字母都会使整个程序发生错误。

posted @ 2008-09-07 10:27  小不点儿大的由我做主!  阅读(189)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3