lib/tethys.js
function tethys(selector, context){

    var nodes = [];
    
    // 把参数转换为包含Node的数组
    if(selector.each && selector.on){
        // tethys 对象
        return selector;
    }else if(typeof selector === 'string'){
        // html代码或选择器
        if(selector.match(/^[^\b\B]*\</)){
            // html代码
            nodes = tethys.parseHtml(selector);
        }else{
            // 选择器
            nodes = (context || document).querySelectorAll(selector);
        };
    }else if(Array.isArray(selector) || selector.constructor === NodeList){
        // 包含节点的数组或NodeList
        nodes = selector;
    }else{
        // 节点
        nodes = [selector];
    };

    // 当Node被appendChild方法添加到其它元素中后，该Node会被从它所在的NodeList中移除
    // 为了避免这种情况，我们要把NodeList转换成包含Node的数组
    nodes = Array.prototype.map.call(nodes, function(n){
        return n;
    });

    // 给数组添加dom操作方法
    tethys.extend(nodes, tethys.fn);

    return nodes;
}
function tethys(selector, context){

    var nodes = [];
    
    // 把参数转换为包含Node的数组
    if(selector.each && selector.on){
        // tethys 对象
        return selector;
    }else if(typeof selector === 'string'){
        // html代码或选择器
        if(selector.match(/^[^\b\B]*\</)){
            // html代码
            nodes = tethys.parseHtml(selector);
        }else{
            // 选择器
            nodes = (context || document).querySelectorAll(selector);
        };
    }else if(Array.isArray(selector) || selector.constructor === NodeList){
        // 包含节点的数组或NodeList
        nodes = selector;
    }else{
        // 节点
        nodes = [selector];
    };

    // 当Node被appendChild方法添加到其它元素中后，该Node会被从它所在的NodeList中移除
    // 为了避免这种情况，我们要把NodeList转换成包含Node的数组
    nodes = Array.prototype.map.call(nodes, function(n){
        return n;
    });

    // 给数组添加dom操作方法
    tethys.extend(nodes, tethys.fn);

    return nodes;
}
function tethys ( selector , context ) { var nodes = [ ] ; // 把参数转换为包含Node的数组 if ( selector . each && selector . on ) { // tethys 对象 return selector ; } else if ( typeof selector === 'string' ) { // html代码或选择器 if ( selector . match ( / ^[^\b\B]*\< / ) ) { // html代码 nodes = tethys . parseHtml ( selector ) ; } else { // 选择器 nodes = ( context || document ) . querySelectorAll ( selector ) ; } ; } else if ( Array . isArray ( selector ) || selector . constructor === NodeList ) { // 包含节点的数组或NodeList nodes = selector ; } else { // 节点 nodes = [ selector ] ; } ; // 当Node被appendChild方法添加到其它元素中后，该Node会被从它所在的NodeList中移除 // 为了避免这种情况，我们要把NodeList转换成包含Node的数组 nodes = Array . prototype . map . call ( nodes , function ( n ) { return n ; } ) ; // 给数组添加dom操作方法 tethys . extend ( nodes , tethys . fn ) ; return nodes ; }
查找节点，返回一个可操作的节点数组
查找节点，返回一个可操作的节点数组