A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘凯 金牌黑马   /  2013-5-2 18:28  /  987 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘凯 于 2013-5-2 18:31 编辑

毕向东Web基础27视频DHTML示例的 22分钟时删除行的一个问题 如下:
  1. function delRow()
  2.         {
  3.                 var bxNodes=document.getElementsByName("termbx");
  4.                
  5.                 /*  自己的一个思路,但是会出BUG  不解
  6.                         var trNum=bxNodes.length;
  7.                         for(var x=0;x<trNum;x++)
  8.                         {
  9.                                 if(bxNodes[x].checked) 报错  这一行的checked属性未定义
  10.                                 {
  11.                                         var trNode = bxNodes[x].parentNode.parentNode;
  12.                                         trNode.parentNode.removeChild(trNode);                                       
  13.                                 }
  14.                         }
  15.                         trColor();
  16.                         会出BUG 为什么?
  17.                 */
  18.                 var arr = new Array();
  19.                 var pos=0;
  20.                 for(var x=0;x<bxNodes.length;x++)
  21.                         if(bxNodes[x].checked)
  22.                                 arr[pos++]=bxNodes[x].parentNode.parentNode;       
  23.                 for(var x=0;x<arr.length;x++)
  24.                 {
  25.                         var trNode=arr[x];
  26.                         trNode.parentNode.removeChild(trNode);
  27.                 }
  28.                 trColor();
  29.                        
  30.         }
复制代码
自己考虑的一个问题,先把没删除之前的行的数目记录到trNum,然后在for循环中用trNum来代替bxNodes.length 从而保证想"x<"后边的这个数是个常量,不会改变,进而去删除符合条件的行。 我感觉这个思路应该是没有问题的 而且trNum始终保持不变已经确定, 但不知道为什么这样做就会报错,如上所示    求大神解答

1 个回复

倒序浏览
我刚看到一半javaScript
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马