Fix for SVN rev [6537]. Events weren't being unbound correctly in Internet Explorer...
[jquery.git] / src / manipulation.js
index ae4430a..b883567 100644 (file)
@@ -189,15 +189,15 @@ jQuery.fn.extend({
 
                // See if we can take a shortcut and just use innerHTML
                } else if ( typeof value === "string" && !/<script/i.test( value ) &&
+                       this[0] && !jQuery.isXMLDoc( this[0] ) &&
                        !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
 
                        for ( var i = 0, l = this.length; i < l; i++ ) {
                                // Remove element nodes and prevent memory leaks
                                if ( this[i].nodeType === 1 ) {
                                        cleanData( this[i].getElementsByTagName("*") );
+                                       this[i].innerHTML = value;
                                }
-
-                               this[i].innerHTML = value;
                        }
 
                } else {
@@ -444,9 +444,8 @@ jQuery.extend({
 });
 
 function cleanData( elems ) {
-       for ( var i = 0, l = elems.length; i < l; i++ ) {
-               var id = elems[i][expando];
-               if ( id ) {
+       for ( var i = 0, elem, id; (elem = elems[i]) != null; i++ ) {
+               if ( (id = elem[expando]) ) {
                        delete jQuery.cache[ id ];
                }
        }