搜索

有思俱乐部学习园地

U.UF.E.deleteLine() 删除行元素。


函数源码:

/*
* 编辑器列删除方法
* @param   {object} 编辑器对象
 * @param   {botton} 是否删除选区内容
*/
U.UF.E.deleteLine=function(edit,judgment){
    var _range=U.UF.E.getRangeAt();//调用方法,获取光标,定义一个变量的值
    if(judgment){
        edit.idarr=arrinsert(edit);//定义对象中的idarr数组
        _range.deleteContents();//删除选区内容
        return false;//返回结果值
    }
    if(edit.childNodes.length != 0){//判断第一层是否被删除掉,如果不是
        if(edit.idarr.length != 1){//判断是否是删除行
            var arr=U.UF.E.diff(arrinsert(edit),edit.idarr);//调用方法,获取现在对象中id的集合数组,与原先的数组进行比对,获取差异
            edit.idarr=arrinsert(edit);//定义对象中的idarr数组
            if(arr.length!=0){//当有差异时
                return arr;//返回差异数组
            }
        }
    }else{//如果是
        var _div=$$("div",{id:edit.idarr[0],innerHTML:"
"},edit);//重新创建第一行,值为原第一行的id } }

附带比较方法:

/*
* 数组比较方法
* @param   arr 进行比较的数组一
* @param   arr 进行比较的数组二
*/

U.UF.E.diff=function(arr1, arr2) {
    var newArr = [];//定义一个局部变量数组newArr
    var arr3 = [];//定义一个局部变量数组arr3
    for (var i=0;i<arr1.length;i++) {//定义循环,循环对象为参数一数组
        if(arr2.indexOf(arr1[i]) === -1)//判断内容是否在参数二中出现,如果不在
            arr3.push(arr1[i]);//放入局部变量arr3中
    }
    var arr4 = [];////定义一个局部变量数组arr4
    for (var j=0;j<arr2.length;j++) {//定义循环,循环对象为参数二数组
        if(arr1.indexOf(arr2[j]) === -1)//判断内容是否在参数一中出现,如果不在
           arr4.push(arr2[j]);//放入局部变量arr4中
    }
    newArr = arr3.concat(arr4);//将arr3和arr4合并,放入newArr中
    return newArr;//返回newArr
}
            

思路流程图:

工作人员

 
作者: 15互联网G5-3 周琳恒
信息录入: 15互联网G5-3 周琳恒