X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=d5a32e24da2431e0cf7d8a8efc3c8830562e25b2;hb=f96bf1041553775a94c1034c97e253e350217173;hp=fe8b32bc5f57b2ac46e711a16cdb8f640d5b3480;hpb=fd249ca808408166882847c217d55ae4c5a799e8;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index fe8b32b..d5a32e2 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -9,22 +9,13 @@ * $Rev$ */ -// Global undefined variable -window.undefined = window.undefined; +// Map over jQuery in case of overwrite +if ( typeof jQuery != "undefined" ) + var _jQuery = jQuery; -/** - * Create a new jQuery Object - * - * @constructor - * @private - * @name jQuery - * @param String|Function|Element|Array|jQuery a selector - * @param jQuery|Element|Array c context - * @cat Core - */ -var jQuery = function(a,c) { +var jQuery = window.jQuery = function(a,c) { // If the context is global, return a new object - if ( window == this ) + if ( window == this || !this.init ) return new jQuery(a,c); return this.init(a,c); @@ -32,143 +23,51 @@ var jQuery = function(a,c) { // Map over the $ in case of overwrite if ( typeof $ != "undefined" ) - jQuery._$ = $; + var _$ = $; // Map the jQuery namespace to the '$' one -var $ = jQuery; +window.$ = 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

one

two

three

- * @result [

two

] - * - * @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) - */ - -/** - * Create DOM elements on-the-fly from the provided String of raw HTML. - * - * @example $("

Hello

").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 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) - */ +var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; jQuery.fn = jQuery.prototype = { - /** - * Initialize a new jQuery object - * - * @private - * @name init - * @param String|Function|Element|Array|jQuery a selector - * @param jQuery|Element|Array 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] ] ); + var m = quickExpr.exec(a); + if ( m && (m[1] || !c) ) { + // HANDLE: $(html) -> $(array) + if ( m[1] ) + a = jQuery.clean( [ m[1] ], c ); + + // HANDLE: $("#id") + else { + var tmp = document.getElementById( m[3] ); + if ( tmp ) + // Handle the case where IE and Opera return items + // by name instead of ID + if ( tmp.id != m[3] ) + return jQuery().find( a ); + else { + this[0] = tmp; + this.length = 1; + return this; + } + else + a = []; + } // HANDLE: $(expr) - else + } else return new jQuery( c ).find( a ); - } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction(a) ) + return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); return this.setArray( // HANDLE: $(array) @@ -182,80 +81,14 @@ jQuery.fn = jQuery.prototype = { [ a ] ); }, - /** - * The current version of jQuery. - * - * @private - * @property - * @name jquery - * @type String - * @cat Core - */ jquery: "@VERSION", - /** - * The number of elements currently matched. The size function will return the same value. - * - * @example $("img").length; - * @before - * @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 - * @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 - * @result [ ] - * @desc Selects all images in the document and returns the DOM Elements as an Array - * - * @name get - * @type Array - * @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 - * @result - * @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 ? @@ -266,96 +99,22 @@ jQuery.fn = jQuery.prototype = { 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 ); + Array.prototype.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 - * @result - * @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
- * @result 0 - * @desc Returns the index for the element with ID foobar - * - * @example $("*").index( $('#foo')[0] ) - * @before
- * @result 2 - * @desc Returns the index for the element with ID foo within another element - * - * @example $("*").index( $('#bar')[0] ) - * @before
- * @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){ @@ -364,85 +123,6 @@ jQuery.fn = jQuery.prototype = { 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 - * @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 - * @result 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 - * @result - * @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 - * [[DOM/Attributes#attr.28_key.2C_value_.29|above]], - * a function is provided that computes the value. - * - * @example $("img").attr("title", function() { return this.src }); - * @before - * @result - * @desc Sets title attribute from src attribute. - * - * @example $("img").attr("title", function(index) { return this.title + (i + 1); }); - * @before - * @result - * @desc Enumerate title attribute. - * - * @name attr - * @type jQuery - * @param String key The name of the property to set. - * @param Function value A function returning the value to set. - * Scope: Current element, argument: Index of current element - * @cat DOM/Attributes - */ attr: function( key, value, type ) { var obj = key; @@ -466,106 +146,12 @@ jQuery.fn = jQuery.prototype = { }); }, - /** - * Access a style property on the first matched element. - * This method makes it easy to retrieve a style property value - * from the first matched element. - * - * @example $("p").css("color"); - * @before

Test Paragraph.

- * @result "red" - * @desc Retrieves the color style of the first paragraph - * - * @example $("p").css("font-weight"); - * @before

Test Paragraph.

- * @result "bold" - * @desc Retrieves the font-weight style of the first paragraph. - * - * @name css - * @type String - * @param String name The name of the property to access. - * @cat CSS - */ - - /** - * Set a key/value object as style properties to all matched elements. - * - * This serves as the best way to set a large number of style properties - * on all matched elements. - * - * @example $("p").css({ color: "red", background: "blue" }); - * @before

Test Paragraph.

- * @result

Test Paragraph.

- * @desc Sets color and background styles to all p elements. - * - * @name css - * @type jQuery - * @param Map properties Key/value pairs to set as style properties. - * @cat CSS - */ - - /** - * Set a single style property to a value, on all matched elements. - * If a number is provided, it is automatically converted into a pixel value. - * - * @example $("p").css("color","red"); - * @before

Test Paragraph.

- * @result

Test Paragraph.

- * @desc Changes the color of all paragraphs to red - * - * @example $("p").css("left",30); - * @before

Test Paragraph.

- * @result

Test Paragraph.

- * @desc Changes the left of all paragraphs to "30px" - * - * @name css - * @type jQuery - * @param String key The name of the property to set. - * @param String|Number value The value to set the property to. - * @cat CSS - */ css: function( key, value ) { return this.attr( key, value, "curCSS" ); }, - /** - * Get the text contents of all matched elements. The result is - * a string that contains the combined text contents of all matched - * elements. This method works on both HTML and XML documents. - * - * @example $("p").text(); - * @before

Test Paragraph.

Paraparagraph

- * @result Test Paragraph.Paraparagraph - * @desc Gets the concatenated text of all paragraphs - * - * @name text - * @type String - * @cat DOM/Attributes - */ - - /** - * Set the text contents of all matched elements. - * - * Similar to html(), but escapes HTML (replace "<" and ">" with their - * HTML entities). - * - * @example $("p").text("Some new text."); - * @before

Test Paragraph.

- * @result

<b>Some</b> new text.

- * @desc Sets the text of all paragraphs. - * - * @example $("p").text("Some new text.", true); - * @before

Test Paragraph.

- * @result

Some new text.

- * @desc Sets the text of all paragraphs. - * - * @name text - * @type String - * @param String val The text value to set the contents of the element to. - * @cat DOM/Attributes - */ text: function(e) { - if ( typeof e == "string" ) + if ( typeof e != "object" && e != null ) return this.empty().append( document.createTextNode( e ) ); var t = ""; @@ -579,404 +165,119 @@ jQuery.fn = jQuery.prototype = { return t; }, - /** - * Wrap all matched elements with a structure of other elements. - * This wrapping process is most useful for injecting additional - * stucture into a document, without ruining the original semantic - * qualities of a document. - * - * This works by going through the first element - * provided (which is generated, on the fly, from the provided HTML) - * and finds the deepest ancestor element within its - * structure - it is that element that will en-wrap everything else. - * - * This does not work with elements that contain text. Any necessary text - * must be added after the wrapping is done. - * - * @example $("p").wrap("
"); - * @before

Test Paragraph.

- * @result

Test Paragraph.

- * - * @name wrap - * @type jQuery - * @param String html A string of HTML, that will be created on the fly and wrapped around the target. - * @cat DOM/Manipulation - */ - - /** - * Wrap all matched elements with a structure of other elements. - * This wrapping process is most useful for injecting additional - * stucture into a document, without ruining the original semantic - * qualities of a document. - * - * This works by going through the first element - * provided and finding the deepest ancestor element within its - * structure - it is that element that will en-wrap everything else. - * - * This does not work with elements that contain text. Any necessary text - * must be added after the wrapping is done. - * - * @example $("p").wrap( document.getElementById('content') ); - * @before

Test Paragraph.

- * @result

Test Paragraph.

- * - * @name wrap - * @type jQuery - * @param Element elem A DOM element that will be wrapped around the target. - * @cat DOM/Manipulation - */ - wrap: function() { - // The elements to wrap the target around - var a, args = arguments; - - // Wrap each of the matched elements individually - return this.each(function(){ - if ( !a ) - a = jQuery.clean(args, this.ownerDocument); + wrapAll: function(html) { + if ( this[0] ) + // The elements to wrap the target around + jQuery(html, this[0].ownerDocument) + .clone() + .insertBefore(this[0]) + .map(function(){ + var elem = this; + while ( elem.firstChild ) + elem = elem.firstChild; + return elem; + }) + .append(this); - // 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 ); + return this; + }, - // Find the deepest point in the wrap structure - while ( b.firstChild ) - b = b.firstChild; + wrapInner: function(html) { + return this.each(function(){ + jQuery(this).contents().wrapAll(html); + }); + }, - // Move the matched element to within the wrap structure - b.appendChild( this ); + wrap: function(html) { + return this.each(function(){ + jQuery(this).wrapAll(html); }); }, - /** - * Append content to the inside of every matched element. - * - * This operation is similar to doing an appendChild to all the - * specified elements, adding them into the document. - * - * @example $("p").append("Hello"); - * @before

I would like to say:

- * @result

I would like to say: Hello

- * @desc Appends some HTML to all paragraphs. - * - * @example $("p").append( $("#foo")[0] ); - * @before

I would like to say:

Hello - * @result

I would like to say: Hello

- * @desc Appends an Element to all paragraphs. - * - * @example $("p").append( $("b") ); - * @before

I would like to say:

Hello - * @result

I would like to say: Hello

- * @desc Appends a jQuery object (similar to an Array of DOM Elements) to all paragraphs. - * - * @name append - * @type jQuery - * @param content Content to append to the target - * @cat DOM/Manipulation - * @see prepend() - * @see before() - * @see after() - */ append: function() { return this.domManip(arguments, true, 1, function(a){ this.appendChild( a ); }); }, - /** - * Prepend content to the inside of every matched element. - * - * This operation is the best way to insert elements - * inside, at the beginning, of all matched elements. - * - * @example $("p").prepend("Hello"); - * @before

I would like to say:

- * @result

HelloI would like to say:

- * @desc Prepends some HTML to all paragraphs. - * - * @example $("p").prepend( $("#foo")[0] ); - * @before

I would like to say:

Hello - * @result

HelloI would like to say:

- * @desc Prepends an Element to all paragraphs. - * - * @example $("p").prepend( $("b") ); - * @before

I would like to say:

Hello - * @result

HelloI would like to say:

- * @desc Prepends a jQuery object (similar to an Array of DOM Elements) to all paragraphs. - * - * @name prepend - * @type jQuery - * @param content Content to prepend to the target. - * @cat DOM/Manipulation - * @see append() - * @see before() - * @see after() - */ prepend: function() { return this.domManip(arguments, true, -1, function(a){ this.insertBefore( a, this.firstChild ); }); }, - /** - * Insert content before each of the matched elements. - * - * @example $("p").before("Hello"); - * @before

I would like to say:

- * @result Hello

I would like to say:

- * @desc Inserts some HTML before all paragraphs. - * - * @example $("p").before( $("#foo")[0] ); - * @before

I would like to say:

Hello - * @result Hello

I would like to say:

- * @desc Inserts an Element before all paragraphs. - * - * @example $("p").before( $("b") ); - * @before

I would like to say:

Hello - * @result Hello

I would like to say:

- * @desc Inserts a jQuery object (similar to an Array of DOM Elements) before all paragraphs. - * - * @name before - * @type jQuery - * @param content Content to insert before each target. - * @cat DOM/Manipulation - * @see append() - * @see prepend() - * @see after() - */ before: function() { return this.domManip(arguments, false, 1, function(a){ this.parentNode.insertBefore( a, this ); }); }, - /** - * Insert content after each of the matched elements. - * - * @example $("p").after("Hello"); - * @before

I would like to say:

- * @result

I would like to say:

Hello - * @desc Inserts some HTML after all paragraphs. - * - * @example $("p").after( $("#foo")[0] ); - * @before Hello

I would like to say:

- * @result

I would like to say:

Hello - * @desc Inserts an Element after all paragraphs. - * - * @example $("p").after( $("b") ); - * @before Hello

I would like to say:

- * @result

I would like to say:

Hello - * @desc Inserts a jQuery object (similar to an Array of DOM Elements) after all paragraphs. - * - * @name after - * @type jQuery - * @param content Content to insert after each target. - * @cat DOM/Manipulation - * @see append() - * @see prepend() - * @see before() - */ after: function() { return this.domManip(arguments, false, -1, function(a){ this.parentNode.insertBefore( a, this.nextSibling ); }); }, - /** - * Revert the most recent 'destructive' operation, changing the set of matched elements - * to its previous state (right before the destructive operation). - * - * If there was no destructive operation before, an empty set is returned. - * - * A 'destructive' operation is any operation that changes the set of - * matched jQuery elements. These functions are: add, - * children, clone, filter, - * find, not, next, - * parent, parents, prev and siblings. - * - * @example $("p").find("span").end(); - * @before

Hello, how are you?

- * @result [

...

] - * @desc Selects all paragraphs, finds span elements inside these, and reverts the - * selection back to the paragraphs. - * - * @name end - * @type jQuery - * @cat DOM/Traversing - */ end: function() { return this.prevObject || jQuery([]); }, - /** - * Searches for all elements that match the specified expression. - - * This method is a good way to find additional descendant - * elements with which to process. - * - * All searching is done using a jQuery expression. The expression can be - * written using CSS 1-3 Selector syntax, or basic XPath. - * - * @example $("p").find("span"); - * @before

Hello, how are you?

- * @result [ Hello ] - * @desc Starts with all paragraphs and searches for descendant span - * elements, same as $("p span") - * - * @name find - * @type jQuery - * @param String expr An expression to search with. - * @cat DOM/Traversing - */ find: function(t) { var data = jQuery.map(this, function(a){ return jQuery.find(t,a); }); return this.pushStack( /[^+>] [^+>]/.test( t ) || t.indexOf("..") > -1 ? jQuery.unique( data ) : data ); }, - /** - * Clone matched DOM Elements and select the clones. - * - * This is useful for moving copies of the elements to another - * location in the DOM. - * - * @example $("b").clone().prependTo("p"); - * @before Hello

, how are you?

- * @result Hello

Hello, how are you?

- * @desc Clones all b elements (and selects the clones) and prepends them to all paragraphs. - * - * @name clone - * @type jQuery - * @param Boolean deep (Optional) Set to false if you don't want to clone all descendant nodes, in addition to the element itself. - * @cat DOM/Manipulation - */ - clone: function(deep) { - // Need to remove events on the element and its descendants + clone: function() { var $this = this.add(this.find("*")); - $this.each(function() { - this._$events = {}; - for (var type in this.$events) - this._$events[type] = jQuery.extend({},this.$events[type]); - }).unbind(); + if (jQuery.browser.msie) { + // Need to remove events on the element and its descendants + $this.each(function() { + this._$events = {}; + for (var type in this.$events) + this._$events[type] = jQuery.extend({},this.$events[type]); + }).unbind(); + } // Do the clone var r = this.pushStack( jQuery.map( this, function(a){ - return a.cloneNode( deep != undefined ? deep : true ); + return a.cloneNode( true ); }) ); - // Add the events back to the original and its descendants - $this.each(function() { - var events = this._$events; - for (var type in events) - for (var handler in events[type]) - jQuery.event.add(this, type, events[type][handler], events[type][handler].data); - this._$events = null; + if (jQuery.browser.msie) { + $this.each(function() { + // Add the events back to the original and its descendants + var events = this._$events; + for (var type in events) + for (var handler in events[type]) + jQuery.event.add(this, type, events[type][handler], events[type][handler].data); + this._$events = null; + }); + } + + // copy form values over + var inputs = r.add(r.find('*')).filter('select,input[@type=checkbox]'); + $this.filter('select,input[@type=checkbox]').each(function(i) { + if (this.selectedIndex) + inputs[i].selectedIndex = this.selectedIndex; + if (this.checked) + inputs[i].checked = true; }); // Return the cloned set return r; }, - /** - * Removes all elements from the set of matched elements that do not - * match the specified expression(s). This method is used to narrow down - * the results of a search. - * - * Provide a comma-separated list of expressions to apply multiple filters at once. - * - * @example $("p").filter(".selected") - * @before

Hello

How are you?

- * @result [

Hello

] - * @desc Selects all paragraphs and removes those without a class "selected". - * - * @example $("p").filter(".selected, :first") - * @before

Hello

Hello Again

And Again

- * @result [

Hello

,

And Again

] - * @desc Selects all paragraphs and removes those without class "selected" and being the first one. - * - * @name filter - * @type jQuery - * @param String expression Expression(s) to search with. - * @cat DOM/Traversing - */ - - /** - * Removes all elements from the set of matched elements that do not - * pass the specified filter. This method is used to narrow down - * the results of a search. - * - * @example $("p").filter(function(index) { - * return $("ol", this).length == 0; - * }) - * @before

  1. Hello

How are you?

- * @result [

How are you?

] - * @desc Remove all elements that have a child ol element - * - * @name filter - * @type jQuery - * @param Function filter A function to use for filtering - * @cat DOM/Traversing - */ filter: function(t) { return this.pushStack( jQuery.isFunction( t ) && jQuery.grep(this, function(el, index){ - return t.apply(el, [index]) + return t.apply(el, [index]); }) || jQuery.multiFilter(t,this) ); }, - /** - * Removes the specified Element from the set of matched elements. This - * method is used to remove a single Element from a jQuery object. - * - * @example $("p").not( $("#selected")[0] ) - * @before

Hello

Hello Again

- * @result [

Hello

] - * @desc Removes the element with the ID "selected" from the set of all paragraphs. - * - * @name not - * @type jQuery - * @param Element el An element to remove from the set - * @cat DOM/Traversing - */ - - /** - * Removes elements matching the specified expression from the set - * of matched elements. This method is used to remove one or more - * elements from a jQuery object. - * - * @example $("p").not("#selected") - * @before

Hello

Hello Again

- * @result [

Hello

] - * @desc Removes the element with the ID "selected" from the set of all paragraphs. - * - * @name not - * @type jQuery - * @param String expr An expression with which to remove matching elements - * @cat DOM/Traversing - */ - - /** - * Removes any elements inside the array of elements from the set - * of matched elements. This method is used to remove one or more - * elements from a jQuery object. - * - * Please note: the expression cannot use a reference to the - * element name. See the two examples below. - * - * @example $("p").not( $("div p.selected") ) - * @before

Hello

Hello Again

- * @result [

Hello

] - * @desc Removes all elements that match "div p.selected" from the total set of all paragraphs. - * - * @name not - * @type jQuery - * @param jQuery elems A set of elements to remove from the jQuery set of matched elements. - * @cat DOM/Traversing - */ not: function(t) { return this.pushStack( t.constructor == String && @@ -990,54 +291,6 @@ jQuery.fn = jQuery.prototype = { ); }, - /** - * Adds more elements, matched by the given expression, - * to the set of matched elements. - * - * @example $("p").add("span") - * @before (HTML)

Hello

Hello Again - * @result (jQuery object matching 2 elements) [

Hello

, Hello Again ] - * @desc Compare the above result to the result of $('p'), - * which would just result in [

Hello

]
. - * Using add(), matched elements of $('span') are simply - * added to the returned jQuery-object. - * - * @name add - * @type jQuery - * @param String expr An expression whose matched elements are added - * @cat DOM/Traversing - */ - - /** - * Adds more elements, created on the fly, to the set of - * matched elements. - * - * @example $("p").add("Again") - * @before

Hello

- * @result [

Hello

, Again ] - * - * @name add - * @type jQuery - * @param String html A string of HTML to create on the fly. - * @cat DOM/Traversing - */ - - /** - * Adds one or more Elements to the set of matched elements. - * - * @example $("p").add( document.getElementById("a") ) - * @before

Hello

Hello Again

- * @result [

Hello

, Hello Again ] - * - * @example $("p").add( document.forms[0].elements ) - * @before

Hello