jQuery 1.0.2

作者:佚名     字体:[增加 减小]    类型:转载
jQuery 1.0.2
复制代码 代码如下:

/* prevent execution of jQuery if included more then once */
if(typeof window.jQuery == "undefined") {
/*
 * jQuery 1.0.2 - 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-10-09 20:23:18 -0400 (Mon, 09 Oct 2006) $
 * $Rev: 413 $
 */

// Global undefined variable
window.undefined = window.undefined;
jQuery = function(a,c) {

    // Shortcut for document ready (because $(document).each() is silly)
    if ( a && typeof a == "function" && jQuery.fn.ready )
        return jQuery(document).ready(a);

    // Make sure that a selection was provided
    a = a || jQuery.context || 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
    var m = /^[^<]*(<.+>)[^>]*$/.exec(a);
    if ( m ) a = jQuery.clean( [ m[1] ] );

    // Watch for when an array is passed in
    this.get( a.constructor == Array || a.length && !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);
};

// 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.2",

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

    get: function( num ) {
        // Watch for when an array (of elements) is passed in
        if ( num && num.constructor == Array ) {

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

            return this;
        } else
            return num == undefined ?

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

                // Return just the object
                this[num];
    },
    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 )
                    /