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 周琳恒