简单封装一下原生JS中的DOM操作

​
var getElementById=function(id){
    var el=document.getElementById(id);
    if(!+"\v1"){
        if(el && el.id === id){
            return el;
        }else{
            var els=document.all[id],n=els.length;
            for(var i=0;i<n;i++){
                if(els[i].id===id){
                    return els[i];
                }
            }
        }
    }
    return el;
}

var getElementByClassName=function(opts){
    var searchClass=opts.searchClass;//存储查找的类名
    var node = opts.node || document;//存储要查找的范围
    var tag=opts.tag || '*'; //存储一定范围内要查找的标签
    var result=[];
    // 判断浏览器支不支持getElementByClassName方法
    if(document.getElementsByClassName){
        var nodes = node.getElementsByClassName(searchClass);
        if(tag!=="*"){
            for(var i=0;node=nodes[i++];){
                if(node.tagName === tag.toUpperCase()){
                    result.push(node);
                }
            }
        }else{
            result = nodes;
        }
        return result;
    }else{
        // 兼容IE :)
        var els=node.getElementsByTagName(tag);
        var elslen = els.length;
        var i,j;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for(i=0,j=0;i<elslen;i++){
            if(pattern.test(els[i].className)){
                result[j]=els[i];
                j++;
            }
        }
        return result;
    }
}


function getinnerText(ele){
    return typeof(ele.innerText)=="string"? ele.innerText+"chrome":ele.textContent+"firefox";
}
function setinnerText(ele,text){
    if(typeof ele.textContent=="string"){
        ele.textContent=text;
        console.log("1"+ele.textContent);
    }else{
        ele.innerText=text;
        console.log(ele.innerText);
    }
}


// 解决H5新标签在IE中的不兼容问题
(function(){
    //条件编译 其他浏览器执行!0返回true  IE !!0 返回false 就会执行下面的语句
    if(!/*@cc_on!@*/0) return;
    var e = "abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(",");
    var i = e.length;
    while(i--){
        document.createElement(e[i]);
    }
}
)();
//浏览器的判断
if(!+"\v1"){
    //!+NaN=!+false =true
    //!+1=false
    console.log("IE")
}else{
    console.log("我是其他浏览器");
}
if(! /*@cc_on!@*/ 0){
    console.log("我是其他浏览器")
}else{
    console.log("IE");
}

​

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值