//数组的indexOf方法封装
function indexOf(arr,value,start){
//如果不设置start,则默认start为0
if(arguments.length== 2){
start=0;
}
//如果数组中存在indexOf方法,则用原生的indexOf方法
if(arr.indexOf){
return arr.indexOf(value,start);
}
for( vari=0; i
if(arr[i] === value){
return i;
}
}
return -1;
}
//数组去重方法封装
function noRepeat(arr){
varresult= [];
for( vari=0; i
if(indexOf(result,arr[i]) == -1){
result.push(arr[i]);
}
}
return result;
}
//inArray方法封装
function inArray(arr,value){
for(vari=0; i
if(arr[i] === value){
return true;
}
}
return false;
}
//去除首尾空格函数封装
function trim(arr){
varresult=arr.replace(/^\s+|\s+$/g,'');
return result;
}
//getElementsByClassName函数封装
function getElementsByClassName(parentObj,classStr){
varresult= [];
varobjs=parentObj.getElementsByTagName('*');
//如果classStr用空格分隔,则表示class必须同时满足才有效
vartargetArr1=noRepeat(trim(classStr).split(/\s+/));
//如果classStr用逗号分隔,则表示class只要有一个满足就有效
vartargetArr2=noRepeat(trim(classStr).split(/\s*,\s*/));
if(classStr.indexOf(',') == -1 ){
//用空格分隔或者只有一个class
label: for(vari=0; i
vararr=noRepeat(trim(objs[i].className).split(/\s+/));
for( varj=0; j
if(!inArray(arr,targetArr1[j])){
continue label;
}
}
result.push(objs[i]);
}
return result;
}else{
//用逗号分隔
label: for(vari=0; i
vararr=noRepeat(trim(objs[i].className).split(/\s+/));
for( varj=0; j
if(inArray(arr,targetArr2[j])){
result.push(objs[i]);
continue label;
}
}
}
return result;
}
}
//addclass函数封装
function addClass(obj,classStr){
vararray=noRepeat(trim(obj.className).split('\s+'));
if(!inArray(array,classStr)){
array.push(classStr);
}
obj.className=array.join(' ');
return obj;
}
//removeclass函数封装
function removeClass(obj,classStr){
vararray=noRepeat(trim(obj.className).split('\s+'));
varindex=indexOf(array,classStr);
if(index != -1){
classStr.splice(index,1);
obj.className=classStr.join(' ');
}
return obj;
}
//toggleClass函数封装
function toggleClass(obj,classStr){
vararray=noRepeat(trim(obj.className).split('\s+'));
if(inArray(array,classStr)){
removeClass(obj,classStr);
}else{
addClass(obj,classStr);
}
}
网友评论