Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix #9960, allow manipulation for parent document nodes. Close gh-924.

  • Loading branch information...
commit 78c1560065e664213ac0cbea7518d442a58b0018 1 parent 3fce794
dcooper authored dmethvin committed
Showing with 21 additions and 2 deletions.
  1. +1 −0  AUTHORS.txt
  2. +2 −2 src/manipulation.js
  3. +18 −0 test/unit/manipulation.js
View
1  AUTHORS.txt
@@ -154,3 +154,4 @@ Allen J Schmidt Jr <cobrasoft@gmail.com>
Marcel Greter <marcel.greter@ocbnet.ch>
Matthias Jäggli <matthias.jaeggli@gmail.com>
Yiming He <yiminghe@gmail.com>
+Devin Cooper <cooper.semantics@gmail.com>
View
4 src/manipulation.js
@@ -126,7 +126,7 @@ jQuery.fn.extend({
append: function() {
return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
this.appendChild( elem );
}
});
@@ -134,7 +134,7 @@ jQuery.fn.extend({
prepend: function() {
return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
this.insertBefore( elem, this.firstChild );
}
});
View
18 test/unit/manipulation.js
@@ -527,6 +527,24 @@ test("append(Function) with incoming value", function() {
QUnit.reset();
});
+test("replaceWith on XML document (#9960)", function () {
+ expect( 1 );
+
+ var newNode,
+ xmlDoc1 = jQuery.parseXML("<scxml xmlns='http://www.w3.org/2005/07/scxml' version='1.0'><state x='100' y='100' initial='actions' id='provisioning'></state><state x='100' y='100' id='error'></state><state x='100' y='100' id='finished' final='true'></state></scxml>"),
+ xmlDoc2 = jQuery.parseXML("<scxml xmlns='http://www.w3.org/2005/07/scxml' version='1.0'><state id='provisioning3'></state></scxml>"),
+ xml1 = jQuery( xmlDoc1 ),
+ xml2 = jQuery( xmlDoc2 ),
+ scxml1 = jQuery( ":first", xml1 ),
+ scxml2 = jQuery( ":first", xml2 );
+
+ scxml1.replaceWith( scxml2 );
+
+ newNode = jQuery( ":first>state[id='provisioning3']", xml1 );
+
+ equal( newNode.length, 1, "ReplaceWith not working on document nodes." );
+});
+
test("append the same fragment with events (Bug #6997, 5566)", function () {
var doExtra = !jQuery.support.noCloneEvent && document["fireEvent"];
expect(2 + (doExtra ? 1 : 0));
Please sign in to comment.
Something went wrong with that request. Please try again.