六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

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

[复制链接]

升级  4%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
56
 楼主| 发表于 2012-12-22 21:32:46 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">最近一直在用原生态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//最后按从老大到老小的顺序,把这一组元素返回
    }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表