jQuery 1.0.4 - New Wave Javascript(js源文件)

我是狠女人

我是狠女人

2016-02-19 11:00

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享jQuery 1.0.4 - New Wave Javascript(js源文件)教程,希望对大家能有一点小小的帮助。
代码如下:

/* prevent execution of jQuery if included more then once */
if(typeof window.jQuery == "undefined") {
/*
 * jQuery 1.0.4 - New Wave Javascript
 *
 * Copyright (c) 2006 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2006-12-12 15:33:10 -0500 (Tue, 12 Dec 2006) $
 * $Rev: 696 $
 */

// Global undefined variable
window.undefined = window.undefined;

var jQuery = function(a,c) {

    // Shortcut for document ready
    if ( a && typeof a == "function" && jQuery.fn.ready && !a.nodeType && a[0] == undefined ) // Safari reports typeof on DOM NodeLists as a function
        return jQuery(document).ready(a);

    // Make sure that a selection was provided
    a = a || document;

    // Watch for when a jQuery object is passed as the selector
    if ( a.jquery )
        return jQuery( jQuery.merge( a, [] ) );

    // Watch for when a jQuery object is passed at the context
    if ( c && c.jquery )
        return jQuery( c ).find(a);

    // If the context is global, return a new object
    if ( window == this )
        return new jQuery(a,c);

    // Handle HTML strings
    if ( typeof a  == "string" ) {
        var m = /^[^]*(.+)[^]*$/.exec(a);
        if ( m ) a = jQuery.clean( [ m[1] ] );
    }

    // Watch for when an array is passed in
    this.set( a.constructor == Array || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType ?
        // Assume that it is an array of DOM Elements
        jQuery.merge( a, [] ) :

        // Find the matching elements and save them for later
        jQuery.find( a, c ) );

    // See if an extra function was provided
    var fn = arguments[ arguments.length - 1 ];

    // If so, execute it in context
    if ( fn && typeof fn == "function" )
        this.each(fn);

    return this;
};

// Map over the $ in case of overwrite
if ( typeof $ != "undefined" )
    jQuery._$ = $;

// Map the jQuery namespace to the '$' one
var $ = jQuery;



jQuery.fn = jQuery.prototype = {

    jquery: "1.0.4",


    size: function() {
        return this.length;
    },


    get: function( num ) {
        return num == undefined ?

            // Return a 'clean' array
            jQuery.merge( this, [] ) :

            // Return just the object
            this[num];
    },

    set: function( array ) {
        // Use a tricky hack to make the jQuery object
        // look and feel like an array
        this.length = 0;
        [].push.apply( this, array );
        return this;
    },

    each: function( fn, args ) {
        return jQuery.each( this, fn, args );
    },

    index: function( obj ) {
        var pos = -1;
        this.each(function(i){
            if ( this == obj ) pos = i;
        });
        return pos;
    },


    attr: function( key, value, type ) {
        // Check to see if we're setting style values
        return key.constructor != String || value != undefined ?
            this.each(function(){
                // See if we're setting a hash of styles
                if ( value == undefined )
                    // Set all the styles
                    for ( var prop in key )
                        jQuery.attr(
                            type ? this.style : this,
                            prop, key[prop]
                        );

                // See if we're setting a single key/value style
                else
                    jQuery.attr(
                        type ? this.style : this,
                        key, value
                    );
            }) :

            // Look for the case where we're accessing a style value
            jQuery[ type || "attr" ]( this[0], key );
    },


    css: function( key, value ) {
        return this.attr( key, value, "curCSS" );
    },

    text: function(e) {
        e = e || this;
        var t = "";
        for ( var j = 0; j  e.length; j++ ) {
            var r = e[j].childNodes;
            for ( var i = 0; i  r.length; i++ )
                if ( r[i].nodeType != 8 )
                    t += r[i].nodeType != 1 ?
                        r[i].nodeValue : jQuery.fn.text([ r[i] ]);
        }
        return t;
    },


    wrap: function() {
        // The elements to wrap the target around
        var a = jQuery.clean(arguments);

        // Wrap each of the matched elements individually
        return this.each(function(){
            // Clone the structure that we're using to wrap
            var b = a[0].cloneNode(true);

            // Insert it before the element to be wrapped
            this.parentNode.insertBefore( b, this );

            // Find the deepest point in the wrap structure
            while ( b.firstChild )
                b = b.firstChild;

            // Move the matched element to within the wrap structure
            b.appendChild( this );
        });
    },


    append: function() {
        return this.domManip(arguments, true, 1, function(a){
            this.appendChild( a );
        });
    },


    prepend: function() {
        return this.domManip(arguments, true, -1, function(a){
            this.insertBefore( a, this.firstChild );
        });
    },


    before: function() {
        return this.domManip(arguments, false, 1, function(a){
            this.parentNode.insertBefore( a, this );
        });
    },


    after: function() {
        return this.domManip(arguments, false, -1, function(a){
            this.parentNode.insertBefore( a, this.nextSibling );
        });
    },

    end: function() {
        if( !(this.stack && this.stack.length) )
            return this;
        return this.set( this.stack.pop() );
    },

    find: function(t) {
        return this.pushStack( jQuery.map( this, function(a){
            return jQuery.find(t,a);
        }), arguments );
    },

    clone: function(deep) {
        return this.pushStack( jQuery.map( this, function(a){
            return a.cloneNode( deep != undefined ? deep : true );
        }), arguments );
    },


    filter: function(t) {
        return this.pushStack(
            t.constructor == Array &&
            jQuery.map(this,function(a){
                for ( var i = 0; i  t.length; i++ )
                    if ( jQuery.filter(t[i],[a]).r.length )
                        return a;
                return null;
            }) ||

            t.constructor == Boolean &&
            ( t ? this.get() : [] ) ||

            typeof t == "function" &&
            jQuery.grep( this, t ) ||

            jQuery.filter(t,this).r, arguments );
    },


    not: function(t) {
        return this.pushStack( typeof t == "string" ?
            jQuery.filter(t,this,false).r :
            jQuery.grep(this,function(a){ return a != t; }), arguments );
    },


    add: function(t) {
        return this.pushStack( jQuery.merge( this, typeof t == "string" ?
            jQuery.find(t) : t.constructor == Array ? t : [t] ), arguments );
    },

    is: function(expr) {
        return expr ? jQuery.filter(expr,this).r.length  0 : false;
    },

    domManip: function(args, table, dir, fn){
        var clone = this.size()  1;
        var a = jQuery.clean(args);

        return this.each(function(){
            var obj = this;

            if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() != "THEAD" ) {
                var tbody = this.getElementsByTagName("tbody");

                if ( !tbody.length ) {
                    obj = document.createElement("tbody");
                    this.appendChild( obj );
                } else
                    obj = tbody[0];
            }

            for ( var i = ( dir  0 ? a.length - 1 : 0 );
                i != ( dir  0 ? dir : a.length ); i += dir ) {
                    fn.apply( obj, [ clone ? a[i].cloneNode(true) : a[i] ] );
            }
        });
    },

    pushStack: function(a,args) {
        var fn = args && args[args.length-1];
        var fn2 = args && args[args.length-2];

        if ( fn && fn.constructor != Function ) fn = null;
        if ( fn2 && fn2.constructor != Function ) fn2 = null;

        if ( !fn ) {
            if ( !this.stack ) this.stack = [];
            this.stack.push( this.get() );
            this.set( a );
        } else {
            var old = this.get();
            this.set( a );

            if ( fn2 && a.length || !fn2 )
                this.each( fn2 || fn ).set( old );
            else
                this.set( old ).each( fn );
        }

        return this;
    }
};


jQuery.extend = jQuery.fn.extend = function() {
    // copy reference to target object
    var target = arguments[0],
        a = 1;

    // extend jQuery itself if only one argument is passed
    if ( arguments.length == 1 ) {
        target = this;
        a = 0;
    }
    var prop;
    while (prop = arguments[a++])
        // Extend the base object
        for ( var i in prop ) target[i] = prop[i];

    // Return the modified object
    return target;
};

jQuery.extend({

    init: function(){
        jQuery.initDone = true;

        jQuery.each( jQuery.macros.axis, function(i,n){
            jQuery.fn[ i ] = function(a) {
                var ret = jQuery.map(this,n);
                if ( a && typeof a == "string" )
                    ret = jQuery.filter(a,ret).r;
                return this.pushStack( ret, arguments );
            };
        });

        jQuery.each( jQuery.macros.to, function(i,n){
            jQuery.fn[ i ] = function(){
                var a = arguments;
                return this.each(function(){
                    for ( var j = 0; j  a.length; j++ )
                        jQuery(a[j])[n]( this );
                });
            };
        });

        jQuery.each( jQuery.macros.each, function(i,n){
            jQuery.fn[ i ] = function() {
                return this.each( n, arguments );
            };
        });

        jQuery.each( jQuery.macros.filter, function(i,n){
            jQuery.fn[ n ] = function(num,fn) {
                return this.filter( ":" + n + "(" + num + ")", fn );
            };
        });

        jQuery.each( jQuery.macros.attr, function(i,n){
            n = n || i;
            jQuery.fn[ i ] = function(h) {
                return h == undefined ?
                    this.length ? this[0][n] : null :
                    this.attr( n, h );
            };
        });

        jQuery.each( jQuery.macros.css, function(i,n){
            jQuery.fn[ n ] = function(h) {
                return h == undefined ?
                    ( this.length ? jQuery.css( this[0], n ) : null ) :
                    this.css( n, h );
            };
        });

    },

    // args is for internal usage only
    each: function( obj, fn, args ) {
        if ( obj.length == undefined )
            for ( var i in obj )
                fn.apply( obj[i], args || [i, obj[i]] );
        else
            for ( var i = 0; i  obj.length; i++ )
                if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
        return obj;
    },

    className: {
        add: function(o,c){
            if (jQuery.className.has(o,c)) return;
            o.className += ( o.className ? " " : "" ) + c;
        },
        remove: function(o,c){
            if( !c ) {
                o.className = "";
            } else {
                var classes = o.className.split(" ");
                for(var i=0; iclasses.length; i++) {
                    if(classes[i] == c) {
                        classes.splice(i, 1);
                        break;
                    }
                }
                o.className = classes.join(' ');
            }
        },
        has: function(e,a) {
            if ( e.className != undefined )
                e = e.className;
            return new RegExp("(^|\s)" + a + "(\s|$)").test(e);
        }
    },

    swap: function(e,o,f) {
        for ( var i in o ) {
            e.style["old"+i] = e.style[i];
            e.style[i] = o[i];
        }
        f.apply( e, [] );
        for ( var i in o )
            e.style[i] = e.style["old"+i];
    },

    css: function(e,p) {
        if ( p == "height" || p == "width" ) {
            var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"];

            for ( var i=0; id.length; i++ ) {
                old["padding" + d[i]] = 0;
                old["border" + d[i] + "Width"] = 0;
            }

            jQuery.swap( e, old, function() {
                if (jQuery.css(e,"display") != "none") {
                    oHeight = e.offsetHeight;
                    oWidth = e.offsetWidth;
                } else {
                    e = jQuery(e.cloneNode(true))
                        .find(":radio").removeAttr("checked").end()
                        .css({
                            visibility: "hidden", position: "absolute", display: "block", right: "0", left: "0"
                        }).appendTo(e.parentNode)[0];

                    var parPos = jQuery.css(e.parentNode,"position");
                    if ( parPos == "" || parPos == "static" )
                        e.parentNode.style.position = "relative";

                    oHeight = e.clientHeight;
                    oWidth = e.clientWidth;

                    if ( parPos == "" || parPos == "static" )
                        e.parentNode.style.position = "static";

                    e.parentNode.removeChild(e);
                }
            });

            return p == "height" ? oHeight : oWidth;
        }

        return jQuery.curCSS( e, p );
    },

    curCSS: function(elem, prop, force) {
        var ret;

        if (prop == 'opacity' && jQuery.browser.msie)
            return jQuery.attr(elem.style, 'opacity');

        if (prop == "float" || prop == "cssFloat")
            prop = jQuery.browser.msie ? "styleFloat" : "cssFloat";

        if (!force && elem.style[prop]) {

            ret = elem.style[prop];

        } else if (document.defaultView && document.defaultView.getComputedStyle) {

            if (prop == "cssFloat" || prop == "styleFloat")
                prop = "float";

            prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase();
            var cur = document.defaultView.getComputedStyle(elem, null);

            if ( cur )
                ret = cur.getPropertyValue(prop);
            else if ( prop == 'display' )
                ret = 'none';
            else
                jQuery.swap(elem, { display: 'block' }, function() {
                    var c = document.defaultView.getComputedStyle(this, '');
                    ret = c && c.getPropertyValue(prop) || '';
                });

        } else if (elem.currentStyle) {

            var newProp = prop.replace(/-(w)/g,function(m,c){return c.toUpperCase();});
            ret = elem.currentStyle[prop] || elem.currentStyle[newProp];

        }

        return ret;
    },

    clean: function(a) {
        var r = [];
        for ( var i = 0; i  a.length; i++ ) {
            var arg = a[i];
            if ( typeof arg == "string" ) { // Convert html string into DOM nodes
                // Trim whitespace, otherwise indexOf won't work as expected
                var s = jQuery.trim(arg), div = document.createElement("div"), wrap = [0,"",""];

                if ( !s.indexOf("opt") ) // option or optgroup
                    wrap = [1, "select", "/select"];
                else if ( !s.indexOf("thead") || !s.indexOf("tbody") )
                    wrap = [1, "table", "/table"];
                else if ( !s.indexOf("tr") )
                    wrap = [2, "table", "/table"];    // tbody auto-inserted
                else if ( !s.indexOf("td") || !s.indexOf("th") )
                    wrap = [3, "tabletbodytr", "/tr/tbody/table"];

                // Go to html and back, then peel off extra wrappers
                div.innerHTML = wrap[1] + s + wrap[2];
                while ( wrap[0]-- ) div = div.firstChild;
                arg = div.childNodes;
            } 

            
            if ( arg.length != undefined && ( (jQuery.browser.safari && typeof arg == 'function') || !arg.nodeType ) ) // Safari reports typeof on a DOM NodeList to be a function
                for ( var n = 0; n  arg.length; n++ ) // Handles Array, jQuery, DOM NodeList collections
                    r.push(arg[n]);
            else
                r.push(    arg.nodeType ? arg : document.createTextNode(arg.toString()) );
        }

        return r;
    },

    expr: {
        "": "m[2]== '*'||a.nodeName.toUpperCase()==m[2].toUpperCase()",
        "#": "a.getAttribute('id')&&a.getAttribute('id')==m[2]",
        ":": {
            // Position Checks
            lt: "im[3]-0",
            gt: "im[3]-0",
            nth: "m[3]-0==i",
            eq: "m[3]-0==i",
            first: "i==0",
            last: "i==r.length-1",
            even: "i%2==0",
            odd: "i%2",

            // Child Checks
            "nth-child": "jQuery.sibling(a,m[3]).cur",
            "first-child": "jQuery.sibling(a,0).cur",
            "last-child": "jQuery.sibling(a,0).last",
            "only-child": "jQuery.sibling(a).length==1",

            // Parent Checks
            parent: "a.childNodes.length",
            empty: "!a.childNodes.length",

            // Text Check
            contains: "jQuery.fn.text.apply([a]).indexOf(m[3])=0",

            // Visibility
            visible: "a.type!='hidden'&&jQuery.css(a,'display')!='none'&&jQuery.css(a,'visibility')!='hidden'",
            hidden: "a.type=='hidden'||jQuery.css(a,'display')=='none'||jQuery.css(a,'visibility')=='hidden'",

            // Form attributes
            enabled: "!a.disabled",
            disabled: "a.disabled",
            checked: "a.checked",
            selected: "a.selected || jQuery.attr(a, 'selected')",

            // Form elements
            text: "a.type=='text'",
            radio: "a.type=='radio'",
            checkbox: "a.type=='checkbox'",
            file: "a.type=='file'",
            password: "a.type=='password'",
            submit: "a.type=='submit'",
            image: "a.type=='image'",
            reset: "a.type=='reset'",
            button: "a.type=='button'",
            input: "/input|select|textarea|button/i.test(a.nodeName)"
        },
        ".": "jQuery.className.has(a,m[2])",
        "@": {
            "=": "z==m[4]",
            "!=": "z!=m[4]",
            "^=": "z && !z.indexOf(m[4])",
            "$=": "z && z.substr(z.length - m[4].length,m[4].length)==m[4]",
            "*=": "z && z.indexOf(m[4])=0",
            "": "z"
        },
        "[": "jQuery.find(m[2],a).length"
    },

    token: [
        "\.\.|/\.\.", "a.parentNode",
        "|/", "jQuery.sibling(a.firstChild)",
        "\+", "jQuery.sibling(a).next",
        "~", function(a){
            var s = jQuery.sibling(a);
            return s.n = 0 ? s.slice(s.n+1) : [];
        }
    ],

    find: function( t, context ) {
        // Make sure that the context is a DOM Element
        if ( context && context.nodeType == undefined )
            context = null;

        // Set the correct context (if none is provided)
        context = context || document;

        if ( t.constructor != String ) return [t];

        if ( !t.indexOf("//") ) {
            context = context.documentElement;
            t = t.substr(2,t.length);
        } else if ( !t.indexOf("/") ) {
            context = context.documentElement;
            t = t.substr(1,t.length);
            // FIX Assume the root element is right :(
            if ( t.indexOf("/") = 1 )
                t = t.substr(t.indexOf("/"),t.length);
        }

        var ret = [context];
        var done = [];
        var last = null;

        while ( t.length  0 && last != t ) {
            var r = [];
            last = t;

            t = jQuery.trim(t).replace( /^///i, "" );

            var foundToken = false;

            for ( var i = 0; i  jQuery.token.length; i += 2 ) {
                if ( foundToken ) continue;

                var re = new RegExp("^(" + jQuery.token[i] + ")");
                var m = re.exec(t);

                if ( m ) {
                    r = ret = jQuery.map( ret, jQuery.token[i+1] );
                    t = jQuery.trim( t.replace( re, "" ) );
                    foundToken = true;
                }
            }

            if ( !foundToken ) {
                if ( !t.indexOf(",") || !t.indexOf("|") ) {
                    if ( ret[0] == context ) ret.shift();
                    done = jQuery.merge( done, ret );
                    r = ret = [context];
                    t = " " + t.substr(1,t.length);
                } else {
                    var re2 = /^([#.]?)([a-z0-9\*_-]*)/i;
                    var m = re2.exec(t);

                    if ( m[1] == "#" ) {
                        // Ummm, should make this work in all XML docs
                        var oid = document.getElementById(m[2]);
                        r = ret = oid ? [oid] : [];
                        t = t.replace( re2, "" );
                    } else {
                        if ( !m[2] || m[1] == "." ) m[2] = "*";

                        for ( var i = 0; i  ret.length; i++ )
                            r = jQuery.merge( r,
                                m[2] == "*" ?
                                    jQuery.getAll(ret[i]) :
                                    ret[i].getElementsByTagName(m[2])
                            );
                    }
                }

            }

            if ( t ) {
                var val = jQuery.filter(t,r);
                ret = r = val.r
展开更多 50%)
分享

猜你喜欢

jQuery 1.0.4 - New Wave Javascript(js源文件)

Web开发
jQuery 1.0.4 - New Wave Javascript(js源文件)

利用javascript查看html源文件

Web开发
利用javascript查看html源文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JS教程:给JavaScript文件传递参数

Web开发
JS教程:给JavaScript文件传递参数

JavaScript replace new RegExp

Web开发
JavaScript replace new RegExp

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JavaScript中new运算符

Web开发
JavaScript中new运算符

Delphi中使用资源文件

编程语言 网络编程
Delphi中使用资源文件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

android书架效果实现原理与代码

android书架效果实现原理与代码

Java递归 遍历目录的小例子

Java递归 遍历目录的小例子
下拉加载更多内容 ↓