一个日常工作中使用的自制js微框架


/*
 *  jLazy
 * 
 *  A tiny 'framework' for js development under 'lazy' purpose.
 *
 *  Developed and maintained by Tie Li. 
 *  
 *  i@litie.name
 *
 */


//prototype of node object 
function $o(node){


    //s() for set attribute
    node.s = function(key, value){    
        node.setAttribute(key, value);
    }
    
    //a() for append child
    node.a = function(child){
        node.appendChild(child);
    }
    //i() for insert before
    node.i = function(inserted, reference){
        node.insertBefore(inserted, reference);
    }
    //ra() for remove all child 
    node.ra = function(){
        while(node.hasChildNodes()){
   node.removeChild(node.childNodes[0]);
   }
    }
    //rc for remove child
    node.rc = function(child){
        node.removeChild(child);
    }
    //rcs for remove node itself
    node.rcs = function(){
        node.parentNode.removeChild(node);
    }


    //tcbt() for get toppest level of childs by tag name
    node.tcbt = function(tagName){
        var arr = new Array();
        for(var i=0; i<node.childNodes.length; i++){
            if(csic(node.childNodes[i].tagName, tagName)){
                //arr.push(node.childNodes[i]); 
                arr.push($o(node.childNodes[i]));
            }
        }


        return arr;
    }    
    //cbc for get childs by class name
    node.cbc = function(className){
        var arr = new Array();
        for(var i=0; i<node.getElementsByClassName(className).length; i++){
            arr.push($o(node.getElementsByClassName(className)[i]));
        }


        return arr;
    }
    //cbt for get childs by tag name
    node.cbt = function(tagName){
        var arr = new Array();
        for(var i=0; i<node.getElementsByTagName(tagName).length; i++){
            arr.push($o(node.getElementsByTagName(tagName)[i]));
        }


        return arr;
    }
    //icbn for get input child by attribute "name"
    node.icbn = function(name){
        //alert(node.getElementsByTagName("INPUT").length);
        for(var i=0; i<node.getElementsByTagName("INPUT").length; i++){
            if(node.getElementsByTagName("INPUT")[i].getAttribute("name") == name){
                return $o(node.getElementsByTagName("INPUT")[i]);
            }            
        }
    }
    //abn for get attribute value by attribute name
    node.abn = function(attributeName){
        //return $o(node.getAttribute(attributeName));
        return node.getAttribute(attributeName);
    }
    //abdn for get data prefixed attribute value by attribute name
    node.abdn = function(attributeName){
        //return $o(node.getAttribute(attributeName));
        return node.getAttribute("data-" + attributeName);
    }
    //p for get node parent
    node.p = function(){
        return $o(node.parentNode);
    }
    //ael for add event listener
    node.ael = function(event, callback, useCapture){
        node.addEventListener(event, callback, useCapture);
    }
    //rel for remove event listener
    node.rel = function(event, callback, useCapture){
        node.removeEventListener(event, callback, useCapture);
    }
    return node;
}


//get node by id
function $(id){
    if(document.getElementById(id) == null){
        //if node does not exist, return false
        return false;
    }else{
        return $o(document.getElementById(id));
    }
}


//get elements by tagname
function $ebt(tagName){
    var arr = new Array();
    for(var i=0; i<document.getElementsByTagName(tagName).length; i++){
        arr.push($o(document.getElementsByTagName(tagName)[i]));        
    }
    return arr;
}
//get elements by class name
function $ebc(className){
    var arr = new Array();
    for(var i=0; i<document.getElementsByClassName(className).length; i++){
        arr.push($o(document.getElementsByClassName(className)[i]));        
    }
    return arr;
}
//get elements by name
function $ebn(name){
    var arr = new Array();
    for(var i=0; i<document.getElementsByName(name).length; i++){
        arr.push($o(document.getElementsByName(name)[i]));        
    }
    return arr;
}


//create node by tag name
function $e(tagName){
    return $o(document.createElement(tagName));
}


//create text node
function $t(text){
    return document.createTextNode(text);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值