From ed5731dcc41db31fd699d1f4e4b250e83b10308e Mon Sep 17 00:00:00 2001
From: jeresig <jeresig@gmail.com>
Date: Thu, 17 Dec 2009 14:17:05 -0500
Subject: [PATCH] Revert the changes from
 65ebf57c1e5d7fa96536b66d4fcacbafad8dc1e5, they were
 ineffectual against IE's insanity:
 http://ejohn.org/files/bugs/fragment/ Used a different
 tactic instead (just don't return a fragment from
 .parent()). Fixes #5638.

---
 src/core.js       |    9 ++-------
 src/traversing.js |    2 +-
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/core.js b/src/core.js
index 8f81c52..1edf98e 100644
--- a/src/core.js
+++ b/src/core.js
@@ -53,7 +53,7 @@ var jQuery = function( selector, context ) {
 
 jQuery.fn = jQuery.prototype = {
 	init: function( selector, context ) {
-		var match, elem, ret, doc, parent;
+		var match, elem, ret, doc;
 
 		// Handle $(""), $(null), or $(undefined)
 		if ( !selector ) {
@@ -88,12 +88,7 @@ jQuery.fn = jQuery.prototype = {
 
 					} else {
 						ret = buildFragment( [ match[1] ], [ doc ] );
-						parent = ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment;
-						selector = [];
-
-						while ( parent.firstChild ) {
-							selector.push( parent.removeChild( parent.firstChild ) );
-						}
+						selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
 					}
 
 				// HANDLE: $("#id")
diff --git a/src/traversing.js b/src/traversing.js
index 6375d9d..d30e4e6 100644
--- a/src/traversing.js
+++ b/src/traversing.js
@@ -161,7 +161,7 @@ jQuery.fn.extend({
 });
 
 jQuery.each({
-	parent: function(elem){return elem.parentNode;},
+	parent: function(elem){var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null;},
 	parents: function(elem){return jQuery.dir(elem,"parentNode");},
 	parentsUntil: function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},
 	next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
-- 
1.7.10.4