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

📄 jquery-1.2.js

📁 里面包括了一些javascript的常用用法
💻 JS
📖 第 1 页 / 共 5 页
字号:
		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 ? win : 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 ];		}	},	// args is for internal usage only	each: function( obj, fn, args ) {		if ( args ) {			if ( obj.length == undefined )				for ( var i in obj )					fn.apply( obj[i], args );			else				for ( var i = 0, ol = obj.length; i < ol; i++ )					if ( fn.apply( obj[i], args ) === false ) break;		// A special, fast, case for the most common use of each		} else {			if ( obj.length == undefined )				for ( var i in obj )					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] ){}		}		return obj;	},		prop: function(elem, value, type, index, prop){			// Handle executable functions			if ( jQuery.isFunction( value ) )				value = value.call( elem, [index] );							// exclude the following css properties to add px			var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;			// Handle passing in a number to a CSS property			return value && value.constructor == Number && type == "curCSS" && !exclude.test(prop) ?				value + "px" :				value;	},	className: {		// internal only, use addClass("class")		add: function( elem, c ){			jQuery.each( (c || "").split(/\s+/), function(i, cur){				if ( !jQuery.className.has( elem.className, cur ) )					elem.className += ( elem.className ? " " : "" ) + cur;			});		},		// internal only, use removeClass("class")		remove: function( elem, c ){			elem.className = c != undefined ?				jQuery.grep( elem.className.split(/\s+/), function(cur){					return !jQuery.className.has( c, cur );					}).join(" ") : "";		},		// internal only, use is(".class")		has: function( t, c ) {			return jQuery.inArray( c, (t.className || t).toString().split(/\s+/) ) > -1;		}	},	swap: function(e,o,f) {		for ( var i in o ) {			e.style["old"+i] = e.style[i];			e.style[i] = o[i];		}		f.apply( e, [] );		for ( var i in o )			e.style[i] = e.style["old"+i];	},	css: function(e,p) {		if ( p == "height" || p == "width" ) {			var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"];			jQuery.each( d, function(){				old["padding" + this] = 0;				old["border" + this + "Width"] = 0;			});			jQuery.swap( e, old, function() {				if ( jQuery(e).is(':visible') ) {					oHeight = e.offsetHeight;					oWidth = e.offsetWidth;				} else {					e = jQuery(e.cloneNode(true))						.find(":radio").removeAttr("checked").end()						.css({							visibility: "hidden", position: "absolute", display: "block", right: "0", left: "0"						}).appendTo(e.parentNode)[0];					var parPos = jQuery.css(e.parentNode,"position") || "static";					if ( parPos == "static" )						e.parentNode.style.position = "relative";					oHeight = e.clientHeight;					oWidth = e.clientWidth;					if ( parPos == "static" )						e.parentNode.style.position = "static";					e.parentNode.removeChild(e);				}			});			return p == "height" ? oHeight : oWidth;		}		return jQuery.curCSS( e, p );	},	curCSS: function(elem, prop, force) {		var ret, stack = [], swap = [];		// A helper method for determining if an element's values are broken		function color(a){			if ( !jQuery.browser.safari )				return false;			var ret = document.defaultView.getComputedStyle(a,null);			return !ret || ret.getPropertyValue("color") == "";		}		if (prop == "opacity" && jQuery.browser.msie) {			ret = jQuery.attr(elem.style, "opacity");			return ret == "" ? "1" : ret;		}				if (prop.match(/float/i))			prop = styleFloat;		if (!force && elem.style[prop])			ret = elem.style[prop];		else if (document.defaultView && document.defaultView.getComputedStyle) {			if (prop.match(/float/i))				prop = "float";			prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase();			var cur = document.defaultView.getComputedStyle(elem, null);			if ( cur && !color(elem) )				ret = cur.getPropertyValue(prop);			// If the element isn't reporting its values properly in Safari			// then some display: none elements are involved			else {				// Locate all of the parent display: none elements				for ( var a = elem; a && color(a); a = a.parentNode )					stack.unshift(a);				// Go through and make them visible, but in reverse				// (It would be better if we knew the exact display type that they had)				for ( a = 0; a < stack.length; a++ )					if ( color(stack[a]) ) {						swap[a] = stack[a].style.display;						stack[a].style.display = "block";					}				// Since we flip the display style, we have to handle that				// one special, otherwise get the value				ret = prop == "display" && swap[stack.length-1] != null ?					"none" :					document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop) || "";				// Finally, revert the display styles back				for ( a = 0; a < swap.length; a++ )					if ( swap[a] != null )						stack[a].style.display = swap[a];			}			if ( prop == "opacity" && ret == "" )				ret = "1";		} else if (elem.currentStyle) {			var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();});			ret = elem.currentStyle[prop] || elem.currentStyle[newProp];			// From the awesome hack by Dean Edwards			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291			// If we're not dealing with a regular pixel number			// but a number that has a weird ending, we need to convert it to pixels			if ( !/^\d+(px)?$/i.test(ret) && /^\d/.test(ret) ) {				var style = elem.style.left;				var runtimeStyle = elem.runtimeStyle.left;				elem.runtimeStyle.left = elem.currentStyle.left;				elem.style.left = ret || 0;				ret = elem.style.pixelLeft + "px";				elem.style.left = style;				elem.runtimeStyle.left = runtimeStyle;			}		}		return ret;	},		clean: function(a, doc) {		var r = [];		doc = doc || document;		jQuery.each( a, function(i,arg){			if ( !arg ) return;			if ( arg.constructor == Number )				arg = arg.toString();						// Convert html string into DOM nodes			if ( typeof arg == "string" ) {				// Fix "XHTML"-style tags in all browsers				arg = arg.replace(/(<(\w+)[^>]*?)\/>/g, function(m, all, tag){					return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i)? m : all+"></"+tag+">";				});				// Trim whitespace, otherwise indexOf won't work as expected				var s = jQuery.trim(arg).toLowerCase(), div = doc.createElement("div"), tb = [];				var wrap =					// option or optgroup					!s.indexOf("<opt") &&					[1, "<select>", "</select>"] ||										!s.indexOf("<leg") &&					[1, "<fieldset>", "</fieldset>"] ||										s.match(/^<(thead|tbody|tfoot|colg|cap)/) &&					[1, "<table>", "</table>"] ||										!s.indexOf("<tr") &&					[2, "<table><tbody>", "</tbody></table>"] ||									 	// <thead> matched above					(!s.indexOf("<td") || !s.indexOf("<th")) &&					[3, "<table><tbody><tr>", "</tr></tbody></table>"] ||										!s.indexOf("<col") &&					[2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] ||					// IE can't serialize <link> and <script> tags normally					jQuery.browser.msie &&					[1, "div<div>", "</div>"] ||										[0,"",""];				// Go to html and back, then peel off extra wrappers				div.innerHTML = wrap[1] + arg + wrap[2];								// Move to the right depth				while ( wrap[0]-- )					div = div.lastChild;								// Remove IE's autoinserted <tbody> from table fragments				if ( jQuery.browser.msie ) {										// String was a <table>, *may* have spurious <tbody>					if ( !s.indexOf("<table") && s.indexOf("<tbody") < 0 ) 						tb = div.firstChild && div.firstChild.childNodes;											// String was a bare <thead> or <tfoot>					else if ( wrap[1] == "<table>" && s.indexOf("<tbody") < 0 )						tb = div.childNodes;					for ( var n = tb.length-1; n >= 0 ; --n )						if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length )							tb[n].parentNode.removeChild(tb[n]);						// IE completely kills leading whitespace when innerHTML is used						if ( /^\s/.test(arg) )							div.insertBefore( doc.createTextNode( arg.match(/^\s*/)[0] ), div.firstChild );				}								arg = jQuery.makeArray( div.childNodes );			}			if ( 0 === arg.length && (!jQuery.nodeName(arg, "form") && !jQuery.nodeName(arg, "select")) )				return;			if ( arg[0] == undefined || jQuery.nodeName(arg, "form") || arg.options )				r.push( arg );			else				r = jQuery.merge( r, arg );		});		return r;	},		attr: function(elem, name, value){		var fix = jQuery.isXMLDoc(elem) ? {} : jQuery.props;		// Safari mis-reports the default selected property of a hidden option		// Accessing the parent's selectedIndex property fixes it		if ( name == "selected" && jQuery.browser.safari )			elem.parentNode.selectedIndex;				// Certain attributes only work when accessed via the old DOM 0 way		if ( fix[name] ) {			if ( value != undefined ) elem[fix[name]] = value;			return elem[fix[name]];		} else if ( jQuery.browser.msie && name == "style" )			return jQuery.attr( elem.style, "cssText", value );		else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName(elem, "form") && (name == "action" || name == "method") )			return elem.getAttributeNode(name).nodeValue;		// IE elem.getAttribute passes even for style		else if ( elem.tagName ) {			if ( value != undefined ) {				if ( name == "type" && jQuery.nodeName(elem,"input") && elem.parentNode )					throw "type property can't be changed";				elem.setAttribute( name, value );			}			if ( jQuery.browser.msie && /href|src/.test(name) && !jQuery.isXMLDoc(elem) ) 				return elem.getAttribute( name, 2 );			return elem.getAttribute( name );		// elem is actually elem.style ... set the style		} else {			// IE actually uses filters for opacity			if ( name == "opacity" && jQuery.browser.msie ) {				if ( value != undefined ) {					// 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\([^)]*\)/,"") +						(parseFloat(value).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");				}					return elem.filter ? 					(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() : "";			}			name = name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();});			if ( value != undefined ) elem[name] = value;			return elem[name];		}	},		trim: function(t){		return (t||"").replace(/^\s+|\s+$/g, "");	},	makeArray: function( a ) {		var r = [];		// 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			r = a.slice( 0 );		return r;	},	inArray: function( b, a ) {		for ( var i = 0, al = a.length; i < al; i++ )			if ( a[i] == b )				return i;		return -1;	},	merge: function(first, second) {		// We have to loop this way because IE & Opera overwrite the length		// expando of getElementsByTagName		// Also, we need to make sure that the correct elements are being returned		// (IE returns comment nodes in a '*' query)		if ( jQuery.browser.msie ) {			for ( var i = 0; second[i]; i++ )				if ( second[i].nodeType != 8 )					first.push(second[i]);		} else			for ( var i = 0; second[i]; i++ )				first.push(second[i]);		return first;	},	unique: function(first) {		var r = [], done = {};		try {			for ( var i = 0, fl = first.length; i < fl; i++ ) {				var id = jQuery.data(first[i]);				if ( !done[id] ) {					done[id] = true;					r.push(first[i]);				}			}		} catch(e) {			r = first;		}		return r;	},	grep: function(elems, fn, inv) {		// If a string is passed in for the function, make a function		// for it (a handy shortcut)		if ( typeof fn == "string" )			fn = eval("false||function(a,i){return " + fn + "}");		var result = [];		// Go through the array, only saving the items		// that pass the validator function		for ( var i = 0, el = elems.length; i < el; i++ )			if ( !inv && fn(elems[i],i) || inv && !fn(elems[i],i) )				result.push( elems[i] );		return result;	},	map: function(elems, fn) {		// If a string is passed in for the function, make a function		// for it (a handy shortcut)		if ( typeof fn == "string" )			fn = eval("false||function(a){return " + fn + "}");		var result = [];		// Go through the array, translating each of the items to their		// new value (or values).		for ( var i = 0, el = elems.length; i < el; i++ ) {			var val = fn(elems[i],i);			if ( val !== null && val != undefined ) {				if ( val.constructor != Array ) val = [val];

⌨️ 快捷键说明

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