X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fcore.js;h=ad94ce10ccbeb27a4abaae68cb00f163451caae7;hb=18229390005fc3aa43e290ae53eb3775f3ff10cb;hp=9347689a3e922fe34b51e919a861f7234be85a58;hpb=83be3dca69391751276b6a8b38420f25e06c1045;p=jquery.git diff --git a/src/core.js b/src/core.js index 9347689..ad94ce1 100644 --- a/src/core.js +++ b/src/core.js @@ -1,14 +1,3 @@ -/* - * jQuery @VERSION - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date$ - * $Rev$ - */ - var // Will speed up references to window, and allows munging its name. window = this, @@ -486,11 +475,11 @@ jQuery.fn = jQuery.prototype = { domManip: function( args, table, callback ) { if ( this[0] ) { - var fragment = this[0].ownerDocument.createDocumentFragment(), - scripts = jQuery.clean( args, this[0].ownerDocument, fragment ), + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), first = fragment.firstChild, extra = this.length > 1 ? fragment.cloneNode(true) : fragment; - + if ( first ) for ( var i = 0, l = this.length; i < l; i++ ) callback.call( root(this[i], first), i > 0 ? extra.cloneNode(true) : fragment ); @@ -905,15 +894,6 @@ jQuery.extend({ if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) ) div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild ); - if ( fragment ) { - var found = div.getElementsByTagName("script"); - - while ( found.length ) { - scripts.push( found[0] ); - found[0].parentNode.removeChild( found[0] ); - } - } - elem = jQuery.makeArray( div.childNodes ); } @@ -926,14 +906,12 @@ jQuery.extend({ if ( fragment ) { for ( var i = 0; ret[i]; i++ ) { - var node = ret[i]; - if ( jQuery.nodeName( node, "script" ) ) { - if( node.parentNode ) - node.parentNode.removeChild( node ); + if ( jQuery.nodeName( ret[i], "script" ) ) { + scripts.push( ret[i].parentNode.removeChild( ret[i] ) ); } else { - if ( node.nodeType === 1 ) - ret = jQuery.merge( ret, node.getElementsByTagName("script")); - fragment.appendChild( node ); + if ( ret[i].nodeType === 1 ) + ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); + fragment.appendChild( ret[i] ); } } @@ -981,6 +959,13 @@ jQuery.extend({ if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) return elem.getAttributeNode( name ).nodeValue; + // elem.tabindex doesn't always return the correct value + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + if ( name == jQuery.props.tabindex ) { + var attributeNode = elem.getAttributeNode(jQuery.props.tabindex); + return attributeNode && attributeNode.specified && attributeNode.value || undefined; + } + return elem[ name ]; }