⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jquery-1.3.1.js

📁 ajaxpro
💻 JS
📖 第 1 页 / 共 5 页
字号:
			if ( name in elem && notxml && !special ) {				if ( set ){					// We can't allow the type property to be changed (since it causes problems in IE)					if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )						throw "type property can't be changed";					elem[ name ] = value;				}				// browsers index elements by id/name on forms, give priority to attributes.				if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )					return elem.getAttributeNode( name ).nodeValue;				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/				if ( name == "tabIndex" ) {					var attributeNode = elem.getAttributeNode( "tabIndex" );					return attributeNode && attributeNode.specified						? attributeNode.value						: elem.nodeName.match(/(button|input|object|select|textarea)/i)							? 0							: elem.nodeName.match(/^(a|area)$/i) && elem.href								? 0								: undefined;				}				return elem[ name ];			}			if ( !jQuery.support.style && notxml &&  name == "style" )				return jQuery.attr( elem.style, "cssText", value );			if ( set )				// convert the value to a string (all browsers do this but IE) see #1070				elem.setAttribute( name, "" + value );			var attr = !jQuery.support.hrefNormalized && notxml && special					// Some attributes require a special call on IE					? elem.getAttribute( name, 2 )					: elem.getAttribute( name );			// Non-existent attributes return null, we normalize to undefined			return attr === null ? undefined : attr;		}		// elem is actually elem.style ... set the style		// IE uses filters for opacity		if ( !jQuery.support.opacity && name == "opacity" ) {			if ( set ) {				// IE has trouble with opacity if it does not have layout				// Force it by setting the zoom level				elem.zoom = 1;				// Set the alpha filter to set the opacity				elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +					(parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");			}			return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?				(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':				"";		}		name = name.replace(/-([a-z])/ig, function(all, letter){			return letter.toUpperCase();		});		if ( set )			elem[ name ] = value;		return elem[ name ];	},	trim: function( text ) {		return (text || "").replace( /^\s+|\s+$/g, "" );	},	makeArray: function( array ) {		var ret = [];		if( array != null ){			var i = array.length;			// The window, strings (and functions) also have 'length'			if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )				ret[0] = array;			else				while( i )					ret[--i] = array[i];		}		return ret;	},	inArray: function( elem, array ) {		for ( var i = 0, length = array.length; i < length; i++ )		// Use === because on IE, window == document			if ( array[ i ] === elem )				return i;		return -1;	},	merge: function( first, second ) {		// We have to loop this way because IE & Opera overwrite the length		// expando of getElementsByTagName		var i = 0, elem, pos = first.length;		// Also, we need to make sure that the correct elements are being returned		// (IE returns comment nodes in a '*' query)		if ( !jQuery.support.getAll ) {			while ( (elem = second[ i++ ]) != null )				if ( elem.nodeType != 8 )					first[ pos++ ] = elem;		} else			while ( (elem = second[ i++ ]) != null )				first[ pos++ ] = elem;		return first;	},	unique: function( array ) {		var ret = [], done = {};		try {			for ( var i = 0, length = array.length; i < length; i++ ) {				var id = jQuery.data( array[ i ] );				if ( !done[ id ] ) {					done[ id ] = true;					ret.push( array[ i ] );				}			}		} catch( e ) {			ret = array;		}		return ret;	},	grep: function( elems, callback, inv ) {		var ret = [];		// Go through the array, only saving the items		// that pass the validator function		for ( var i = 0, length = elems.length; i < length; i++ )			if ( !inv != !callback( elems[ i ], i ) )				ret.push( elems[ i ] );		return ret;	},	map: function( elems, callback ) {		var ret = [];		// Go through the array, translating each of the items to their		// new value (or values).		for ( var i = 0, length = elems.length; i < length; i++ ) {			var value = callback( elems[ i ], i );			if ( value != null )				ret[ ret.length ] = value;		}		return ret.concat.apply( [], ret );	}});// Use of jQuery.browser is deprecated.// It's included for backwards compatibility and plugins,// although they should work to migrate away.var userAgent = navigator.userAgent.toLowerCase();// Figure out what browser is being usedjQuery.browser = {	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],	safari: /webkit/.test( userAgent ),	opera: /opera/.test( userAgent ),	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )};jQuery.each({	parent: function(elem){return elem.parentNode;},	parents: function(elem){return jQuery.dir(elem,"parentNode");},	next: function(elem){return jQuery.nth(elem,2,"nextSibling");},	prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},	nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},	prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},	siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},	children: function(elem){return jQuery.sibling(elem.firstChild);},	contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}}, function(name, fn){	jQuery.fn[ name ] = function( selector ) {		var ret = jQuery.map( this, fn );		if ( selector && typeof selector == "string" )			ret = jQuery.multiFilter( selector, ret );		return this.pushStack( jQuery.unique( ret ), name, selector );	};});jQuery.each({	appendTo: "append",	prependTo: "prepend",	insertBefore: "before",	insertAfter: "after",	replaceAll: "replaceWith"}, function(name, original){	jQuery.fn[ name ] = function() {		var args = arguments;		return this.each(function(){			for ( var i = 0, length = args.length; i < length; i++ )				jQuery( args[ i ] )[ original ]( this );		});	};});jQuery.each({	removeAttr: function( name ) {		jQuery.attr( this, name, "" );		if (this.nodeType == 1)			this.removeAttribute( name );	},	addClass: function( classNames ) {		jQuery.className.add( this, classNames );	},	removeClass: function( classNames ) {		jQuery.className.remove( this, classNames );	},	toggleClass: function( classNames, state ) {		if( typeof state !== "boolean" )			state = !jQuery.className.has( this, classNames );		jQuery.className[ state ? "add" : "remove" ]( this, classNames );	},	remove: function( selector ) {		if ( !selector || jQuery.filter( selector, [ this ] ).length ) {			// Prevent memory leaks			jQuery( "*", this ).add([this]).each(function(){				jQuery.event.remove(this);				jQuery.removeData(this);			});			if (this.parentNode)				this.parentNode.removeChild( this );		}	},	empty: function() {		// Remove element nodes and prevent memory leaks		jQuery( ">*", this ).remove();		// Remove any remaining nodes		while ( this.firstChild )			this.removeChild( this.firstChild );	}}, function(name, fn){	jQuery.fn[ name ] = function(){		return this.each( fn, arguments );	};});// Helper function used by the dimensions and offset modulesfunction num(elem, prop) {	return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;}var expando = "jQuery" + now(), uuid = 0, windowData = {};

jQuery.extend({
	cache: {},

	data: function( elem, name, data ) {
		elem = elem == window ?
			windowData :
			elem;

		var id = elem[ expando ];

		// Compute a unique ID for the element
		if ( !id )
			id = elem[ expando ] = ++uuid;

		// Only generate the data cache if we're
		// trying to access or manipulate it
		if ( name && !jQuery.cache[ id ] )
			jQuery.cache[ id ] = {};

		// Prevent overriding the named cache with undefined values
		if ( data !== undefined )
			jQuery.cache[ id ][ name ] = data;

		// Return the named cache data, or the ID for the element
		return name ?
			jQuery.cache[ id ][ name ] :
			id;
	},

	removeData: function( elem, name ) {
		elem = elem == window ?
			windowData :
			elem;

		var id = elem[ expando ];

		// If we want to remove a specific section of the element's data
		if ( name ) {
			if ( jQuery.cache[ id ] ) {
				// Remove the section of cache data
				delete jQuery.cache[ id ][ name ];

				// If we've removed all the data, remove the element's cache
				name = "";

				for ( name in jQuery.cache[ id ] )
					break;

				if ( !name )
					jQuery.removeData( elem );
			}

		// Otherwise, we want to remove all of the element's data
		} else {
			// Clean up the element expando
			try {
				delete elem[ expando ];
			} catch(e){
				// IE has trouble directly removing the expando
				// but it's ok with using removeAttribute
				if ( elem.removeAttribute )
					elem.removeAttribute( expando );
			}

			// Completely remove the data cache
			delete jQuery.cache[ id ];
		}
	},
	queue: function( elem, type, data ) {
		if ( elem ){
	
			type = (type || "fx") + "queue";
	
			var q = jQuery.data( elem, type );
	
			if ( !q || jQuery.isArray(data) )
				q = jQuery.data( elem, type, jQuery.makeArray(data) );
			else if( data )
				q.push( data );
	
		}
		return q;
	},

	dequeue: function( elem, type ){
		var queue = jQuery.queue( elem, type ),
			fn = queue.shift();
		
		if( !type || type === "fx" )
			fn = queue[0];
			
		if( fn !== undefined )
			fn.call(elem);
	}
});

jQuery.fn.extend({
	data: function( key, value ){
		var parts = key.split(".");
		parts[1] = parts[1] ? "." + parts[1] : "";

		if ( value === undefined ) {
			var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);

			if ( data === undefined && this.length )
				data = jQuery.data( this[0], key );

			return data === undefined && parts[1] ?
				this.data( parts[0] ) :
				data;
		} else
			return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
				jQuery.data( this, key, value );
			});
	},

	removeData: function( key ){
		return this.each(function(){
			jQuery.removeData( this, key );
		});
	},
	queue: function(type, data){
		if ( typeof type !== "string" ) {
			data = type;
			type = "fx";
		}

		if ( data === undefined )
			return jQuery.queue( this[0], type );

		return this.each(function(){
			var queue = jQuery.queue( this, type, data );
			
			 if( type == "fx" && queue.length == 1 )
				queue[0].call(this);
		});
	},
	dequeue: function(type){
		return this.each(function(){
			jQuery.dequeue( this, type );
		});
	}
});/*! * Sizzle CSS Selector Engine - v0.9.3 *  Copyright 2009, The Dojo Foundation *  Released under the MIT, BSD, and GPL Licenses. *  More information: http://sizzlejs.com/ */(function(){var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,	done = 0,	toString = Object.prototype.toString;var Sizzle = function(selector, context, results, seed) {	results = results || [];	context = context || document;	if ( context.nodeType !== 1 && context.nodeType !== 9 )		return [];		if ( !selector || typeof selector !== "string" ) {		return results;	}	var parts = [], m, set, checkSet, check, mode, extra, prune = true;		// Reset the position of the chunker regexp (start from head)	chunker.lastIndex = 0;		while ( (m = chunker.exec(selector)) !== null ) {		parts.push( m[1] );				if ( m[2] ) {			extra = RegExp.rightContext;			break;		}	}	if ( parts.length > 1 && origPOS.exec( selector ) ) {		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {			set = posProcess( parts[0] + parts[1], context );		} else {			set = Expr.relative[ parts[0] ] ?				[ context ] :				Sizzle( parts.shift(), context );			while ( parts.length ) {				selector = parts.shift();				if ( Expr.relative[ selector ] )					selector += parts.shift();				set = posProcess( selector, set );			}		}	} else {		var ret = seed ?			{ expr: parts.pop(), set: makeArray(seed) } :			Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );		set = Sizzle.filter( ret.expr, ret.set );		if ( parts.length > 0 ) {			checkSet = makeArray(set);		} else {			prune = false;		}		while ( parts.length ) {			var cur = parts.pop(), pop = cur;			if ( !Expr.relative[ cur ] ) {				cur = "";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -