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