Removed some un-needed code from css() and fixed a bug with how Safari handles childN...
[jquery.git] / src / jquery / jquery.js
index 1d96eac..061d86c 100644 (file)
@@ -768,12 +768,17 @@ jQuery.fn = jQuery.prototype = {
        },
 
        /**
-        * 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.
+        * 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: <code>add</code>,
+        * <code>children</code>, <code>clone</code>, <code>filter</code>,
+        * <code>find</code>, <code>not</code>, <code>next</code>,
+        * <code>parent</code>, <code>parents</code>, <code>prev</code> and <code>siblings</code>.
+        *
         * @example $("p").find("span").end();
         * @before <p><span>Hello</span>, how are you?</p>
         * @result [ <p>...</p> ]
@@ -924,6 +929,9 @@ jQuery.fn = jQuery.prototype = {
         * 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 <div><p>Hello</p><p class="selected">Hello Again</p></div>
         * @result [ <p>Hello</p> ]
@@ -952,8 +960,12 @@ jQuery.fn = jQuery.prototype = {
         * to the set of matched elements.
         *
         * @example $("p").add("span")
-        * @before <p>Hello</p><span>Hello Again</span>
-        * @result [ <p>Hello</p>, <span>Hello Again</span> ]
+        * @before (HTML) <p>Hello</p><span>Hello Again</span>
+        * @result (jQuery object matching 2 elements) [ <p>Hello</p>, <span>Hello Again</span> ]
+        * @desc Compare the above result to the result of <code>$('p')</code>,
+        * which would just result in <code><nowiki>[ <p>Hello</p> ]</nowiki></code>.
+        * Using add(), matched elements of <code>$('span')</code> are simply
+        * added to the returned jQuery-object.
         *
         * @name add
         * @type jQuery
@@ -1243,7 +1255,7 @@ jQuery.extend({
        // is the only cross-browser way to do this. --John
        isFunction: function( fn ) {
                return !!fn && typeof fn != "string" && !fn.nodeName && 
-                       typeof fn[0] == "undefined" && /function/i.test( fn + "" );
+                       fn.constructor != Array && /function/i.test( fn + "" );
        },
        
        // check if an element is in a XML document
@@ -1256,7 +1268,7 @@ jQuery.extend({
        },
 
        /**
-        * A generic iterator function, which can be used to seemlessly
+        * A generic iterator function, which can be used to seamlessly
         * iterate over both objects and arrays. This function is not the same
         * as $().each() - which is used to iterate, exclusively, over a jQuery
         * object. This function can be used to iterate over anything.
@@ -1460,7 +1472,7 @@ jQuery.extend({
                                        [0,"",""];
 
                                // Go to html and back, then peel off extra wrappers
-                               div.innerHTML = wrap[1] + s + wrap[2];
+                               div.innerHTML = wrap[1] + arg + wrap[2];
                                
                                // Move to the right depth
                                while ( wrap[0]-- )
@@ -1483,7 +1495,7 @@ jQuery.extend({
                                        
                                }
                                
-                               arg = div.childNodes;
+                               arg = jQuery.makeArray( div.childNodes );
                        }
 
                        if ( arg.length === 0 && !jQuery.nodeName(arg, "form") )
@@ -1528,11 +1540,6 @@ jQuery.extend({
                        return elem.filter ? 
                                parseFloat( elem.filter.match(/alpha\(opacity=(.*)\)/)[1] ) / 100 : 1;
                
-               // Mozilla doesn't play well with opacity 1
-               if ( name == "opacity" && jQuery.browser.mozilla && value == 1 )
-                       value = 0.9999;
-                       
-
                // Certain attributes only work when accessed via the old DOM 0 way
                if ( fix[name] ) {
                        if ( value != undefined ) elem[fix[name]] = value;
@@ -1574,7 +1581,8 @@ jQuery.extend({
        makeArray: function( a ) {
                var r = [];
 
-               if ( a.constructor != Array )
+               // Need to use typeof to fight Safari childNodes crashes
+               if ( typeof a != "array" )
                        for ( var i = 0, al = a.length; i < al; i++ )
                                r.push( a[i] );
                else
@@ -1783,7 +1791,7 @@ new function() {
  * Get a set of elements containing the unique parents of the matched
  * set of elements.
  *
- * Can be filtered with an optional expressions.
+ * You may use an optional expression to filter the set of parent elements that will match.
  *
  * @example $("p").parent()
  * @before <div><p>Hello</p><p>Hello</p></div>
@@ -1805,7 +1813,7 @@ new function() {
  * Get a set of elements containing the unique ancestors of the matched
  * set of elements (except for the root element).
  *
- * Can be filtered with an optional expressions.
+ * The matched elements can be filtered with an optional expression.
  *
  * @example $("span").parents()
  * @before <html><body><div><p><span>Hello</span></p><span>Hello Again</span></div></body></html>
@@ -1827,9 +1835,10 @@ new function() {
  * Get a set of elements containing the unique next siblings of each of the
  * matched set of elements.
  *
- * It only returns the very next sibling, not all next siblings.
+ * It only returns the very next sibling for each element, not all
+ * next siblings.
  *
- * Can be filtered with an optional expressions.
+ * You may provide an optional expression to filter the match.
  *
  * @example $("p").next()
  * @before <p>Hello</p><p>Hello Again</p><div><span>And Again</span></div>
@@ -1851,9 +1860,9 @@ new function() {
  * Get a set of elements containing the unique previous siblings of each of the
  * matched set of elements.
  *
- * Can be filtered with an optional expressions.
+ * Use an optional expression to filter the matched set.
  *
- * It only returns the immediately previous sibling, not all previous siblings.
+ *     Only the immediately previous sibling is returned, not all previous siblings.
  *
  * @example $("p").prev()
  * @before <p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>
@@ -1897,7 +1906,8 @@ new function() {
  * Get a set of elements containing all of the unique children of each of the
  * matched set of elements.
  *
- * Can be filtered with an optional expressions.
+ * This set can be filtered with an optional expression that will cause
+ * only elements matching the selector to be collected.
  *
  * @example $("div").children()
  * @before <p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>
@@ -2250,7 +2260,7 @@ jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){
  */
 
 /**
- * Set the CSS width of every matched element. If no explicit unit
+ * Set the CSS height of every matched element. If no explicit unit
  * was specified (like 'em' or '%') then "px" is added to the width.
  *
  * @example $("p").height(20);