Marked all the appropriate methods as being deprecated for the 1.1.4 release (in...
[jquery.git] / src / jquery / jquery.js
index 8089e4e..4c5941b 100644 (file)
  * @param jQuery|Element|Array<Element> c context
  * @cat Core
  */
-window.jQuery = function(a,c) {
+
+// Map over jQuery in case of overwrite
+if ( typeof jQuery != "undefined" )
+       var _jQuery = jQuery;
+
+var jQuery = window.jQuery = function(a,c) {
        // If the context is global, return a new object
        if ( window == this || !this.init )
                return new jQuery(a,c);
@@ -29,11 +34,13 @@ window.jQuery = function(a,c) {
 
 // Map over the $ in case of overwrite
 if ( typeof $ != "undefined" )
-       jQuery._$ = $;
+       var _$ = $;
        
 // Map the jQuery namespace to the '$' one
 window.$ = jQuery;
 
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+
 /**
  * This function accepts a string containing a CSS or
  * basic XPath selector which is then used to match a set of elements.
@@ -150,22 +157,39 @@ jQuery.fn = jQuery.prototype = {
                // 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] ] );
+
+                               // 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)
@@ -1326,9 +1350,10 @@ jQuery.extend({
         * @type undefined
         * @cat Core 
         */
-       noConflict: function() {
-               if ( jQuery._$ )
-                       $ = jQuery._$;
+       noConflict: function(deep) {
+               window.$ = _$;
+               if ( deep )
+                       window.jQuery = _jQuery;
                return jQuery;
        },
 
@@ -1409,7 +1434,7 @@ jQuery.extend({
                                        fn.call( obj[i], i, obj[i] );
                        else
                                for ( var i = 0, ol = obj.length, val = obj[0]; 
-                                       i < ol && fn.call(val,i,val) !== false; val = obj[++i] );
+                                       i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
                }
 
                return obj;
@@ -1832,7 +1857,7 @@ jQuery.extend({
                // If a string is passed in for the function, make a function
                // for it (a handy shortcut)
                if ( typeof fn == "string" )
-                       fn = new Function("a","i","return " + fn);
+                       fn = eval("false||function(a,i){return " + fn + "}");
 
                var result = [];
 
@@ -1886,7 +1911,7 @@ jQuery.extend({
                // If a string is passed in for the function, make a function
                // for it (a handy shortcut)
                if ( typeof fn == "string" )
-                       fn = new Function("a","return " + fn);
+                       fn = eval("false||function(a){return " + fn + "}");
 
                var result = [];
 
@@ -2397,6 +2422,7 @@ jQuery.each( {
  * @param String str The string that will be contained within the text of an element.
  * @cat DOM/Traversing
  */
+// DEPRECATED
 jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){
        jQuery.fn[ n ] = function(num,fn) {
                return this.filter( ":" + n + "(" + num + ")", fn );