兼容问题

//写了一个函数,要参数id
function getID(id){
    return document.getElementById(id);
}

//根据标签名获取元素
function getEle(ele) {
    return document.getElementsByTagName(ele);
}

//2.根据类名获取元素,自己封装
    function getClass(cls){
        var classobj= new Array();//定义数组
        var classint=0;//定义数组的下标
        var tags=document.getElementsByTagName("*");//获取HTML的所有标签
        for(var i in tags){//对标签进行遍历
            if(tags[i].nodeType==1){//判断节点类型
                if(tags[i].getAttribute("class") == cls)//判断和需要CLASS名字相同的,并组成一个数组
                {
                    classobj[classint]=tags[i];
                    classint++;
                }
            }
        }
        return classobj;//返回组成的数组
    }
//    var a = getClass('里面写要获取元素的类名')[0]这是位置;
//    console.log(a);

//构造方法,把id和类名
// 构造出一个方法, 先找ID,再找类
function getIDClss (parId,cls){
    //找ID
    var pID = document.getElementById("parId");
    //再pID中找元素获取所有元素,Firefox不支持
    var eles = pID.all?pID.all:pID.getElementsByTagName("*");
    //新建空数组,用来盛找到的元素
    var arr = [];
    //遍历整个元素数组
    for(var i=0;i<eles.length;i++){
        //判断每个元素,是否是我们要找的那个类
        if(eles[i].className = cls){
            //把元素放到数组里
            arr.push(eles[i]);
        }
    }
    return arr;
}

//获取样式,ele元素 attr 属性
//ele放元素, attr 要的样式属性
function getStyle(ele,attr){
    //IE 6-11
    if(ele.currentStyle){
        return ele.currentStyle[attr];
    }else{
        return window.getComputedStyle(ele)[attr];
    }
}

//第一个孩子
function firstC(obj){
    if (obj.firstElementChild) {
        return obj.firstElementChild;
    }else{
        return obj.firstChild;
    }
}

//最后一个孩子
function lastC(obj){
    if (obj.lastElementChild) {
        return obj.lastElementChild;
    }else{
        return obj.lastChild;
    }
}

//前一个兄弟
//上一个兄弟节点构造兼容写法
function previous(obj){
    if (obj.previousElementSibling) {
        return obj.previousElementSibling;
    }else{
        return obj.previousSibling;
    }
}

//后一个兄弟
//下一个兄弟节点构造兼容写法
function next(obj){
    if (obj.nextElementSibling) {
        return obj.nextElementSibling;
    }else{
        return obj.nextSibling;
    }
}

//    绑定事件兼容方法
//obj为对象,eventName,为执行的事件加双引号,handler为执行的函数
    function addEventHandler(obj,eventName,handler){
        if (document.attachEvent) {
            return obj.attachEvent("on"+eventName,handler);
        }else {
            return obj.addEventListener(eventName, handler,false);
        }
    }
//    第一个值为对象 第二个值为事件 加引号 不加"on" 第三个值是方法
//    addEventHandler(b,"click",function(){
//        this.style.border="1px solid green";
//    })

//移除
function removeEventHandler(obj,eventName,handler){
    if (document.attachEvent) {
        return obj.detachEvent("on"+eventName,handler);
    }else {
        return obj.removeEventListener(eventName, handler,false);
    }
}

//获取事件对象
function eventTarget(ev){
    var ev = ev || event;
    var targetElement = ev.target || ev.srcElement;
    return targetElement;
}

//随机数的方法  
function suijishu(max,min){
    //返回随机数
    return parseInt(Math.random()*(max-min)+min);
}

//阻止浏览器默认行为
function prevent(ev){
    var event = ev||event;
    if (event.preventDefault()) {
        event.preventDefault();
    }else{
        event.returnValue = false;
    }
}

//阻止冒泡
function stopBubble(ev){
    var event = ev||event;
    if (event.stopPropagation()) {
        event.stopPropagation();
    }else{
        event.cancelBubble = true;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41954789/article/details/80042559