首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Ext移除元素的步骤注意

2013-09-08 
Ext移除元素的方法注意核心:采用从n-1 到 0 递减遍历;而不是采用从 0 到 n-1 递增遍历。例子://【示例:】/**

Ext移除元素的方法注意
核心:采用从n-1 到 0 递减遍历;
而不是采用从 0 到 n-1 递增遍历。

例子:

//【示例:】/** * 移除反馈项*/function deleteNewFeedbackItem(){        var io=Ext.getCmp('chekBoxesId');        var i = io.items.length;      // alert(i);        //判断是否选中至少一个。        var nullCountNum = 0;                for(var n=0;n<i;n++){            if(!io.items.items[n].getValue()){            nullCountNum ++;            }         }        //如果一个都没选中,则返回。        if(nullCountNum == i){         Ext.MessageBox.alert("提示:","请选择要删除的反馈项!");        return;        }              /**移除选中的项。         * 方法:关于在一次选中多个的情况下,采用items[n]从n到0,递减遍历。         * 说明:如果采用从0到n,递增遍历,则会报错。         *      原因:由于items移除元素后,后面的元素会自动向前补齐,         *      这样后面的被选中的元素的索引会-1,但本次循环中的迭代值+1,         *      因此无法指向已经向前移动了的元素,从而导致被选中的元素不能         *      被删除。而当迭代值继续增加时,会出现索引越界的错误。         *      即使外层再套一层循环也无效,循环已中断。         */        for(var n=i-1;n>=0;n--){           if(io.items.items[n].getValue()==true){               io.remove(io.items.items[n]);           }         }        io.doLayout();}


















--

热点排行