📄 jquery.js
字号:
// prevent execution of jQuery if included more than onceif(typeof window.jQuery == "undefined") {/* * jQuery 1.1.3a - New Wave Javascript * * Copyright (c) 2007 John Resig (jquery.com) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * $Date: 2007-05-21 00:49:26 +0000 (Mon, 21 May 2007) $ * $Rev: 1938 $ */// Global undefined variablewindow.undefined = window.undefined;/** * Create a new jQuery Object * * @constructor * @private * @name jQuery * @param String|Function|Element|Array<Element>|jQuery a selector * @param jQuery|Element|Array<Element> c context * @cat Core */var jQuery = function(a,c) { // If the context is global, return a new object if ( window == this ) return new jQuery(a,c); return this.init(a,c);};// Map over the $ in case of overwriteif ( typeof $ != "undefined" ) jQuery._$ = $; // Map the jQuery namespace to the '$' onevar $ = jQuery;/** * This function accepts a string containing a CSS or * basic XPath selector which is then used to match a set of elements. * * The core functionality of jQuery centers around this function. * Everything in jQuery is based upon this, or uses this in some way. * The most basic use of this function is to pass in an expression * (usually consisting of CSS or XPath), which then finds all matching * elements. * * By default, if no context is specified, $() looks for DOM elements within the context of the * current HTML document. If you do specify a context, such as a DOM * element or jQuery object, the expression will be matched against * the contents of that context. * * See [[DOM/Traversing/Selectors]] for the allowed CSS/XPath syntax for expressions. * * @example $("div > p") * @desc Finds all p elements that are children of a div element. * @before <p>one</p> <div><p>two</p></div> <p>three</p> * @result [ <p>two</p> ] * * @example $("input:radio", document.forms[0]) * @desc Searches for all inputs of type radio within the first form in the document * * @example $("div", xml.responseXML) * @desc This finds all div elements within the specified XML document. * * @name $ * @param String expr An expression to search with * @param Element|jQuery context (optional) A DOM Element, Document or jQuery to use as context * @cat Core * @type jQuery * @see $(Element) * @see $(Element<Array>) */ /** * Create DOM elements on-the-fly from the provided String of raw HTML. * * @example $("<div><p>Hello</p></div>").appendTo("body") * @desc Creates a div element (and all of its contents) dynamically, * and appends it to the body element. Internally, an * element is created and its innerHTML property set to the given markup. * It is therefore both quite flexible and limited. * * @name $ * @param String html A string of HTML to create on the fly. * @cat Core * @type jQuery * @see appendTo(String) *//** * Wrap jQuery functionality around a single or multiple DOM Element(s). * * This function also accepts XML Documents and Window objects * as valid arguments (even though they are not DOM Elements). * * @example $(document.body).css( "background", "black" ); * @desc Sets the background color of the page to black. * * @example $( myForm.elements ).hide() * @desc Hides all the input elements within a form * * @name $ * @param Element|Array<Element> elems DOM element(s) to be encapsulated by a jQuery object. * @cat Core * @type jQuery *//** * A shorthand for $(document).ready(), allowing you to bind a function * to be executed when the DOM document has finished loading. This function * behaves just like $(document).ready(), in that it should be used to wrap * other $() operations on your page that depend on the DOM being ready to be * operated on. While this function is, technically, chainable - there really * isn't much use for chaining against it. * * You can have as many $(document).ready events on your page as you like. * * See ready(Function) for details about the ready event. * * @example $(function(){ * // Document is ready * }); * @desc Executes the function when the DOM is ready to be used. * * @example jQuery(function($) { * // Your code using failsafe $ alias here... * }); * @desc Uses both the shortcut for $(document).ready() and the argument * to write failsafe jQuery code using the $ alias, without relying on the * global alias. * * @name $ * @param Function fn The function to execute when the DOM is ready. * @cat Core * @type jQuery * @see ready(Function) */jQuery.fn = jQuery.prototype = { /** * Initialize a new jQuery object * * @private * @name init * @param String|Function|Element|Array<Element>|jQuery a selector * @param jQuery|Element|Array<Element> c context * @cat Core */ init: function(a,c) { // Make sure that a selection was provided a = a || document; // HANDLE: $(function) // Shortcut for document ready if ( jQuery.isFunction(a) ) return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); // Handle HTML strings if ( typeof a == "string" ) { // HANDLE: $(html) -> $(array) var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a); if ( m ) a = jQuery.clean( [ m[1] ] ); // HANDLE: $(expr) else return new jQuery( c ).find( a ); } return this.setArray( // HANDLE: $(array) a.constructor == Array && a || // HANDLE: $(arraylike) // Watch for when an array-like object is passed as the selector (a.jquery || a.length && a != window && (!a.nodeType || (jQuery.browser.msie && a.elements)) && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) || // HANDLE: $(*) [ a ] ); }, /** * The current version of jQuery. * * @private * @property * @name jquery * @type String * @cat Core */ jquery: "1.1.3a", /** * The number of elements currently matched. The size function will return the same value. * * @example $("img").length; * @before <img src="test1.jpg"/> <img src="test2.jpg"/> * @result 2 * * @property * @name length * @type Number * @cat Core */ /** * Get the number of elements currently matched. This returns the same * number as the 'length' property of the jQuery object. * * @example $("img").size(); * @before <img src="test1.jpg"/> <img src="test2.jpg"/> * @result 2 * * @name size * @type Number * @cat Core */ size: function() { return this.length; }, length: 0, /** * Access all matched DOM elements. This serves as a backwards-compatible * way of accessing all matched elements (other than the jQuery object * itself, which is, in fact, an array of elements). * * It is useful if you need to operate on the DOM elements themselves instead of using built-in jQuery functions. * * @example $("img").get(); * @before <img src="test1.jpg"/> <img src="test2.jpg"/> * @result [ <img src="test1.jpg"/> <img src="test2.jpg"/> ] * @desc Selects all images in the document and returns the DOM Elements as an Array * * @name get * @type Array<Element> * @cat Core */ /** * Access a single matched DOM element at a specified index in the matched set. * This allows you to extract the actual DOM element and operate on it * directly without necessarily using jQuery functionality on it. * * @example $("img").get(0); * @before <img src="test1.jpg"/> <img src="test2.jpg"/> * @result <img src="test1.jpg"/> * @desc Selects all images in the document and returns the first one * * @name get * @type Element * @param Number num Access the element in the Nth position. * @cat Core */ get: function( num ) { return num == undefined ? // Return a 'clean' array jQuery.makeArray( this ) : // Return just the object this[num]; }, /** * Set the jQuery object to an array of elements, while maintaining * the stack. * * @example $("img").pushStack([ document.body ]); * @result $("img").pushStack() == [ document.body ] * * @private * @name pushStack * @type jQuery * @param Elements elems An array of elements * @cat Core */ pushStack: function( a ) { var ret = jQuery(a); ret.prevObject = this; return ret; }, /** * Set the jQuery object to an array of elements. This operation is * completely destructive - be sure to use .pushStack() if you wish to maintain * the jQuery stack. * * @example $("img").setArray([ document.body ]); * @result $("img").setArray() == [ document.body ] * * @private * @name setArray * @type jQuery * @param Elements elems An array of elements * @cat Core */ setArray: function( a ) { this.length = 0; [].push.apply( this, a ); return this; }, /** * Execute a function within the context of every matched element. * This means that every time the passed-in function is executed * (which is once for every element matched) the 'this' keyword * points to the specific DOM element. * * Additionally, the function, when executed, is passed a single * argument representing the position of the element in the matched * set (integer, zero-index). * * @example $("img").each(function(i){ * this.src = "test" + i + ".jpg"; * }); * @before <img/><img/> * @result <img src="test0.jpg"/><img src="test1.jpg"/> * @desc Iterates over two images and sets their src property * * @name each * @type jQuery * @param Function fn A function to execute * @cat Core */ each: function( fn, args ) { return jQuery.each( this, fn, args ); }, /** * Searches every matched element for the object and returns * the index of the element, if found, starting with zero. * Returns -1 if the object wasn't found. * * @example $("*").index( $('#foobar')[0] ) * @before <div id="foobar"><b></b><span id="foo"></span></div> * @result 0 * @desc Returns the index for the element with ID foobar * * @example $("*").index( $('#foo')[0] ) * @before <div id="foobar"><b></b><span id="foo"></span></div> * @result 2 * @desc Returns the index for the element with ID foo within another element * * @example $("*").index( $('#bar')[0] ) * @before <div id="foobar"><b></b><span id="foo"></span></div> * @result -1 * @desc Returns -1, as there is no element with ID bar * * @name index * @type Number * @param Element subject Object to search for * @cat Core */ index: function( obj ) { var pos = -1; this.each(function(i){ if ( this == obj ) pos = i; }); return pos; }, /** * Access a property on the first matched element. * This method makes it easy to retrieve a property value * from the first matched element. * * If the element does not have an attribute with such a * name, undefined is returned. * * @example $("img").attr("src"); * @before <img src="test.jpg"/> * @result test.jpg * @desc Returns the src attribute from the first image in the document. * * @name attr * @type Object * @param String name The name of the property to access. * @cat DOM/Attributes */ /** * Set a key/value object as properties to all matched elements. * * This serves as the best way to set a large number of properties * on all matched elements. * * @example $("img").attr({ src: "test.jpg", alt: "Test Image" }); * @before <img/> * @result <img src="test.jpg" alt="Test Image"/> * @desc Sets src and alt attributes to all images. * * @name attr * @type jQuery * @param Map properties Key/value pairs to set as object properties. * @cat DOM/Attributes */ /** * Set a single property to a value, on all matched elements. * * Note that you can't set the name property of input elements in IE. * Use $(html) or .append(html) or .html(html) to create elements * on the fly including the name property. * * @example $("img").attr("src","test.jpg"); * @before <img/> * @result <img src="test.jpg"/> * @desc Sets src attribute to all images. * * @name attr * @type jQuery * @param String key The name of the property to set. * @param Object value The value to set the property to. * @cat DOM/Attributes */ /** * Set a single property to a computed value, on all matched elements. * * Instead of supplying a string value as described
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -