Dom方法兼容

innerText兼容写法

  • 获取文本
function getInnerText(element) {
        // 能力检测 判断是否有这一属性
    if (typeof element.innerText === "string") {
        return element.innerText;
    } else {
        return element.textContent;
    }
}
  • 设置文本
function setInnerText(element, content) {
        // 能力检测 判断是否有这一属性
    if (typeof element.innerText === "string") {
        element.innerText = content;
    } else {
        element.textContent = content;
    }
}

获取上一个&下一个兄弟元素的兼容写法

  • 获取上一个兄弟元素兼容写法
function getPreviousElement(element){
    if(element.previousElementSibling){
        return element.previousElementSibling;
    }else{
        var previous = element.previousSibling;
        while(previous&&previous.nodeType !== 1){
            previous = element.previousSibling;
        }
        return previous;
    }
}
  • 获取下一个兄弟元素兼容写法
function getNextElement(element){
    if(element.nextElementSibling){
        //能找到nextElementSibling这个属性 就可以直接使用
        return element.nextElementSibling;
    }else{
        var next = element.nextSibling;// 获取下一个兄弟节点
        // 如果next就是想要的下一个兄弟元素 就直接返回 如果不是 就一直找
        while(next&&next.nodeType !==1){//next找到了而且不是想要的元素节点就继续找
            next = next.nextSibling;
        }
        return next;
    }
}

获取第一个子元素&最后一个子元素的兼容写法

  • 获取第一个子元素兼容写法
function getFirstElement(element){
    // 判断是否支持这一写法
    if(element.firstElementChild){
        return element.firstElementChild;
    }else{
        // 先找到第一个节点
        var first = element.firstChild;
        // 如果这个节点存在而且这个节点不是元素节点
        while(first&&first.nodeType !== 1){
            // 从这个节点向后继续找下一个兄弟节点
            first = first.nextSibling;
        }
        return first;
    }
}
  • 获取最后一个子元素兼容写法
function getLastElement(element){
    // 判断是否支持这一写法
    if(element.lastElementChild){
        return element.lastElementChild;
    }else{
        // 先找到最后一个个节点
        var last = element.lastChild;
        // 如果这个节点存在而且这个节点不是元素节点
        while(last&&last.nodeType !== 1){
            // 从这个节点向前继续找上一个兄弟节点
            last = last.previousSibling;
        }
        return last;
    }
}

通过类名获取元素对象的兼容方法

function getElementByClassName(element,className){
    if(element.getElementByClassName){// 可以使用这个属性
        return element.getElementByClassName("className");
    }else{
        // 先找到element里面所有的标签 然后判断是否有需要的类名
        // 如果有 就把这些标签放到一个集合中 最后返回这个集合
        var elements = element.getElementByTagName("*"); // 通配符找到所有标签
        var filterArr = [];
        for(var i = 0;i<elements.length;i++){
            if(elements[i].className.indexOf(className)!== -1){
                filter.push(elements[i]);
            } 
        }
        return filterArr;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值