diff --git a/jquery/images/file.gif b/jquery/images/file.gif new file mode 100644 index 0000000..7e62167 Binary files /dev/null and b/jquery/images/file.gif differ diff --git a/jquery/images/folder.gif b/jquery/images/folder.gif new file mode 100644 index 0000000..2b31631 Binary files /dev/null and b/jquery/images/folder.gif differ diff --git a/jquery/images/tv-collapsable-last.gif b/jquery/images/tv-collapsable-last.gif new file mode 100644 index 0000000..4acff93 Binary files /dev/null and b/jquery/images/tv-collapsable-last.gif differ diff --git a/jquery/images/tv-collapsable.gif b/jquery/images/tv-collapsable.gif new file mode 100644 index 0000000..857262f Binary files /dev/null and b/jquery/images/tv-collapsable.gif differ diff --git a/jquery/images/tv-expandable-last.gif b/jquery/images/tv-expandable-last.gif new file mode 100644 index 0000000..1ede2de Binary files /dev/null and b/jquery/images/tv-expandable-last.gif differ diff --git a/jquery/images/tv-expandable.gif b/jquery/images/tv-expandable.gif new file mode 100644 index 0000000..305d57f Binary files /dev/null and b/jquery/images/tv-expandable.gif differ diff --git a/jquery/images/tv-item-last.gif b/jquery/images/tv-item-last.gif new file mode 100644 index 0000000..42a139a Binary files /dev/null and b/jquery/images/tv-item-last.gif differ diff --git a/jquery/images/tv-item.gif b/jquery/images/tv-item.gif new file mode 100644 index 0000000..281e5dc Binary files /dev/null and b/jquery/images/tv-item.gif differ diff --git a/jquery/jquery.js b/jquery/jquery.js new file mode 100644 index 0000000..2547367 --- /dev/null +++ b/jquery/jquery.js @@ -0,0 +1,4996 @@ +/* prevent execution of jQuery if included more than once */ +if(typeof window.jQuery == "undefined") { +/* + * jQuery @VERSION - 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: 2008/04/20 13:30:47 $ + * $Rev: 1173 $ + */ + +// Global undefined variable +window.undefined = window.undefined; + +/** + * 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) { + // If the context is global, return a new object + if ( window == this ) + return new jQuery(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 = /^[^<]*(<(.|\n)+>)[^>]*$/.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 && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) || + + // HANDLE: $(*) + [ a ] ); +}; + +// Map over the $ in case of overwrite +if ( typeof $ != "undefined" ) + jQuery._$ = $; + +// Map the jQuery namespace to the '$' one +var $ = 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, $() looks for DOM elements within the context of the + * current HTML document. + * + * @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 element with the ID of body. Internally, an + * element is created and it's 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).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 + * all of the other $() operations on your page. 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 = { + /** + * The current version of jQuery. + * + * @private + * @property + * @name jquery + * @type String + * @cat Core + */ + jquery: "@VERSION", + + /** + * The number of elements currently matched. + * + * @example $("img").length; + * @before + * @result 2 + * + * @property + * @name length + * @type Number + * @cat Core + */ + + /** + * The number of elements currently matched. + * + * @example $("img").size(); + * @before + * @result 2 + * + * @name size + * @type Number + * @cat Core + */ + size: function() { + return this.length; + }, + + length: 0, + + /** + * Access all matched 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). + * + * @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 element. num is used to access the + * Nth element matched. + * + * @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 ? + + // 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 element. + * + * Additionally, the function, when executed, is passed a single + * argument representing the position of the element in the matched + * set. + * + * @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){ + 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. + * + * @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. + * + * Can compute values provided as ${formula}, see second example. + * + * 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. + * + * @example $("img").attr("title", "${this.src}"); + * @before + * @result + * @desc Sets title attribute from src attribute, a shortcut for attr(String,Function) + * + * @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 a value, 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; + + // Look for the case where we're accessing a style value + if ( key.constructor == String ) + if ( value == undefined ) + return this.length && jQuery[ type || "attr" ]( this[0], key ) || undefined; + else { + obj = {}; + obj[ key ] = value; + } + + // Check to see if we're setting style values + return this.each(function(index){ + // Set all the styles + for ( var prop in obj ) + jQuery.attr( + type ? this.style : this, + prop, jQuery.prop(this, obj[prop], type, index, prop) + ); + }); + }, + + /** + * 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" ) + return this.empty().append( document.createTextNode( e ) ); + + var t = ""; + jQuery.each( e || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + t += this.nodeType != 1 ? + this.nodeValue : jQuery.fn.text([ this ]); + }); + }); + 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 = 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 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 ); + }); + }, + + /** + * End the most recent 'destructive' operation, reverting the list of matched elements + * back to its previous state. After an end operation, the list of matched elements will + * revert to the last state of matched elements. + * + * If there was no destructive operation before, an empty set is returned. + * + * @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) { + return this.pushStack( jQuery.map( this, function(a){ + return jQuery.find(t,a); + }), t ); + }, + + /** + * 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) { + return this.pushStack( jQuery.map( this, function(a){ + return a.cloneNode( deep != undefined ? deep : true ); + }) ); + }, + + /** + * 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]) + }) || + + 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. + * + * @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 && + jQuery.multiFilter(t, this, true) || + + jQuery.grep(this, function(a) { + return ( t.constructor == Array || t.jquery ) + ? jQuery.inArray( a, t ) < 0 + : a != t; + }) + ); + }, + + /** + * Adds more elements, matched by the given expression, + * to the set of matched elements. + * + * @example $("p").add("span") + * @before

Hello

Hello Again + * @result [

Hello

, Hello Again ] + * + * @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