Show More
Commit Description:
fig bugs in login report
Commit Description:
fig bugs in login report
References:
File last commit:
Show/Diff file:
Action:
node_modules/jquery/src/core/init.js
| 129 lines
| 3.3 KiB
| application/javascript
| JavascriptLexer
|
r789 | // Initialize a jQuery object | |||
define( [ | ||||
"../core", | ||||
"../var/document", | ||||
"../var/isFunction", | ||||
"./var/rsingleTag", | ||||
"../traversing/findFilter" | ||||
], function( jQuery, document, isFunction, rsingleTag ) { | ||||
"use strict"; | ||||
// A central reference to the root jQuery(document) | ||||
var rootjQuery, | ||||
// A simple way to check for HTML strings | ||||
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521) | ||||
// Strict HTML recognition (#11290: must start with <) | ||||
// Shortcut simple #id case for speed | ||||
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, | ||||
init = jQuery.fn.init = function( selector, context, root ) { | ||||
var match, elem; | ||||
// HANDLE: $(""), $(null), $(undefined), $(false) | ||||
if ( !selector ) { | ||||
return this; | ||||
} | ||||
// Method init() accepts an alternate rootjQuery | ||||
// so migrate can support jQuery.sub (gh-2101) | ||||
root = root || rootjQuery; | ||||
// Handle HTML strings | ||||
if ( typeof selector === "string" ) { | ||||
if ( selector[ 0 ] === "<" && | ||||
selector[ selector.length - 1 ] === ">" && | ||||
selector.length >= 3 ) { | ||||
// Assume that strings that start and end with <> are HTML and skip the regex check | ||||
match = [ null, selector, null ]; | ||||
} else { | ||||
match = rquickExpr.exec( selector ); | ||||
} | ||||
// Match html or make sure no context is specified for #id | ||||
if ( match && ( match[ 1 ] || !context ) ) { | ||||
// HANDLE: $(html) -> $(array) | ||||
if ( match[ 1 ] ) { | ||||
context = context instanceof jQuery ? context[ 0 ] : context; | ||||
// Option to run scripts is true for back-compat | ||||
// Intentionally let the error be thrown if parseHTML is not present | ||||
jQuery.merge( this, jQuery.parseHTML( | ||||
match[ 1 ], | ||||
context && context.nodeType ? context.ownerDocument || context : document, | ||||
true | ||||
) ); | ||||
// HANDLE: $(html, props) | ||||
if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { | ||||
for ( match in context ) { | ||||
// Properties of context are called as methods if possible | ||||
if ( isFunction( this[ match ] ) ) { | ||||
this[ match ]( context[ match ] ); | ||||
// ...and otherwise set as attributes | ||||
} else { | ||||
this.attr( match, context[ match ] ); | ||||
} | ||||
} | ||||
} | ||||
return this; | ||||
// HANDLE: $(#id) | ||||
} else { | ||||
elem = document.getElementById( match[ 2 ] ); | ||||
if ( elem ) { | ||||
// Inject the element directly into the jQuery object | ||||
this[ 0 ] = elem; | ||||
this.length = 1; | ||||
} | ||||
return this; | ||||
} | ||||
// HANDLE: $(expr, $(...)) | ||||
} else if ( !context || context.jquery ) { | ||||
return ( context || root ).find( selector ); | ||||
// HANDLE: $(expr, context) | ||||
// (which is just equivalent to: $(context).find(expr) | ||||
} else { | ||||
return this.constructor( context ).find( selector ); | ||||
} | ||||
// HANDLE: $(DOMElement) | ||||
} else if ( selector.nodeType ) { | ||||
this[ 0 ] = selector; | ||||
this.length = 1; | ||||
return this; | ||||
// HANDLE: $(function) | ||||
// Shortcut for document ready | ||||
} else if ( isFunction( selector ) ) { | ||||
return root.ready !== undefined ? | ||||
root.ready( selector ) : | ||||
// Execute immediately if ready is not present | ||||
selector( jQuery ); | ||||
} | ||||
return jQuery.makeArray( selector, this ); | ||||
}; | ||||
// Give the init function the jQuery prototype for later instantiation | ||||
init.prototype = jQuery.fn; | ||||
// Initialize central reference | ||||
rootjQuery = jQuery( document ); | ||||
return init; | ||||
} ); | ||||