贴部分代码,以后会用到~

最近一直在用原生态js,虽然有些不方便,但是觉得用着用着就习惯了~~

仿jq  class选择器

//   用数组模拟jq的class选择器
function getClassName(ParentId,NewClassName){
    var AllClassElem = ParentId.getElementsByTagName("*");
    var AllClass = [];
    var i=0;
    for(var i=0; i<AllClassElem.length; i++){
        if(AllClassElem[i].className==NewClassName){
            AllClass.push(AllClassElem[i]);
        }
    }
    return AllClass;
}

 

用法:

 var PElementId=document.getElementById("bar");
 var  buttons = getClassName(PElementId,"sco");

取id=“bar”下class=“sco”的元素;

仿jq   addClass方法

HTMLElement.prototype.addClass=function(className){
    var c=this.className;
    if(c){
        var arr= c.split(" ");
        for(var i=0;i<arr.length;i++){
            if(arr[i]==className){
                return;
            }
        }
        this.className=c+" "+className;
    }else{
        this.className=className;
    }
}

 


js仿jq sibling方法

function siblings(o){//参数o就是想取谁的兄弟节点,就把那个元素传进去
        var a=[];//定义一个数组,用来存o的兄弟元素
        var p=o.previousSibling;
        while(p){//先取o的哥哥们 判断有没有上一个哥哥元素,如果有则往下执行 p表示previousSibling
            if(p.nodeType===1){
                a.push(p);
            }
            p=p.previousSibling//最后把上一个节点赋给p
        }
        a.reverse()//把顺序反转一下 这样元素的顺序就是按先后的了
        var n=o.nextSibling;//再取o的弟弟
        while(n){//判断有没有下一个弟弟结点 n是nextSibling的意思
            if(n.nodeType===1){
                a.push(n);
            }
            n=n.nextSibling;
        }
        //for(var i=0;i<a.length;i++){
         //   a[i].style.fontSize="12px";
          //  a[i].style.background="#fff";
       // }
        return a//最后按从老大到老小的顺序,把这一组元素返回
    }

posted @ 2012-10-31 16:24  beixiao1909  阅读(746)  评论(4编辑  收藏  举报