* @param jQuery|Element|Array<Element> c context
* @cat Core
*/
+
+// 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 )
// 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.
// 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)
* @type undefined
* @cat Core
*/
- noConflict: function() {
- if ( jQuery._$ )
- $ = jQuery._$;
+ noConflict: function(deep) {
+ window.$ = _$;
+ if ( deep )
+ window.jQuery = _jQuery;
return jQuery;
},
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;
// 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 = [];
// 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 = [];
* @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 );