北晓的太阳 发表于 2012-12-22 21:32:46

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

<div id="cnblogs_post_body">最近一直在用原生态js,虽然有些不方便,但是觉得用着用着就习惯了~~
仿jqclass选择器
//   用数组模拟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.className==NewClassName){
            AllClass.push(AllClassElem);
      }
    }
    return AllClass;
}

用法:
var PElementId=document.getElementById("bar");
varbuttons = 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==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.style.fontSize="12px";
          //a.style.background="#fff";
       // }
      return a//最后按从老大到老小的顺序,把这一组元素返回
    }
页: [1]
查看完整版本: 贴部分代码,以后会用到~