兼容IE的Prve、Next、first、last

2017-09-16  本文已影响0人  ggg_tip

查找上一个兄弟节点

/*
@element 需要的查找兄弟元素DOM对象
*/
function prev(element){
    /*兼容性问题。因为firstElementChild  ie 8以前版本的不认识,所以会是false。
     但是firstchild ie8以前的版本认识,但是在谷歌中会返回文本对象。
     */
    var prevEle = element.previousElementSibling ||element.previousSibling;
    if(!prevEle||prevEle.nodeType !=1){//nodeType是文档节点 1.是元素节点
        return null;
    }else{
        return prevEle;
    }
}

查找下一个兄弟节点

/*
@element 需要的查找兄弟元素DOM对象
*/
function next(element){
    /*兼容性问题。因为firstElementChild  ie 8以前版本的不认识,所以会是false。
     但是firstchild ie8以前的版本认识,但是在谷歌中会返回文本对象。
     */
    var nextEle = element.nextElementSibling ||element.nextSibling;
    if(!nextEle||nextEle.nodeType !=1){
        return null;
    }else{
        return nextEle;//返回一个新对象。
    }
}

查找第一个兄弟节点

/*
@element 需要的查找兄弟元素DOM对象
*/
function first(ele){
    /*兼容性问题。因为firstElementChild  ie 8以前版本的不认识,所以会是false。
        但是firstchild ie8以前的版本认识,但是在谷歌中会返回文本对象。
    */
    var firstEle = ele.firstElementChild ||ele.firstChild;
    if(!firstEle||firstEle.nodeType !=1){//nodeType是文档节点
        return null;
    }else{
        return firstEle;
    }
}

查找最后一个兄弟节点

/*
@element 需要的查找兄弟元素DOM对象
*/
 //封装查找最后一个子节点(兼容性强)
function last(element){
    /*兼容性问题。因为firstElementChild  ie 8以前版本的不认识,所以会是false。
     但是firstchild ie8以前的版本认识,但是在谷歌中会返回文本对象。
     */
    var lastEle = element.lastElementChild ||element.lastChild;
    if(!lastEle||lastEle.nodeType !=1){//nodeType是文档节点  
        return null;
    }else{
        return lastEle;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读