Make sure that &#...; entities are encoded properly. Fixes #6042.
[jquery.git] / src / manipulation.js
index 6f0373d..708de89 100644 (file)
@@ -4,7 +4,7 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
        rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,
        rtagName = /<([\w:]+)/,
        rtbody = /<tbody/i,
-       rhtml = /<|&\w+;/,
+       rhtml = /<|&#?\w+;/,
        rnocache = /<script|<object|<embed/i,
        rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,  // checked="checked" or checked (html5)
        fcloseTag = function( all, front, tag ) {
@@ -197,7 +197,7 @@ jQuery.fn.extend({
                                // as properties will not be copied (such as the
                                // the name attribute on an input).
                                var html = this.outerHTML, ownerDocument = this.ownerDocument;
-                               if ( !html || jQuery.nodeName( this, "form" ) ) {
+                               if ( !html ) {
                                        var div = ownerDocument.createElement("div");
                                        div.appendChild( this.cloneNode(true) );
                                        html = div.innerHTML;