Oops, order of operations.
[jquery.git] / src / core.js
index 9347689..9222e0a 100644 (file)
@@ -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 );
@@ -981,6 +970,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 ];
                        }