//1、为元素添加样式,如addStyle(btn,"active")
function addStyle(obj, className){
var clName = obj.getAttribute('class');
if(clName == null || clName == ''){
obj.className = className;
}else if(clName.indexOf(className) == -1){
clName += ' ' + className;
obj.className = clName;
}
}
//2、移除选中的样式
function removeStyle(obj, className){
var clName = obj.getAttribute('class');
if(clName == '' || clName == null){
return;
}
if(clName.indexOf(className) != -1){
//存在了在进行比较
var classArr = clName.split(' ');
//避免不全等值的类出现
for(var i = 0; i < classArr.length; i++){
if(classArr[i] == className){
//避免出现多余空格
classArr = classArr.remove(i);//用到第三点
}
}
obj.className = classArr.join(' ');
}
}
//3、在原型链上自定义方法
//移除指定下标的元素,并返回一个新的数组
//不改变原数组
Array.prototype.remove = function(index){
//截取被删除下标前的元素
var arr1 = this.slice(0, index);
var arr2 = [];
//判断被删除元素是否为最后一个元素
if(index != this.length - 1){
//截取被删除小标后部分的元素
var arr2 = this.slice(index + 1);
}
var newArr = arr1.concat(arr2);
// console.log(newArr);
return newArr;
}
//获取不在行内样式的属性值
//例如getStyle(box,"height")获取box的高度
function getStyle(obj, attr) {
//IE兼容
if(obj.currentStyle) {
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj, false)[attr];
}
}
以后遇到可复用性高的函数会继续更新的~