From: jeresig Date: Thu, 17 Dec 2009 19:17:05 +0000 (-0500) Subject: Revert the changes from 65ebf57c1e5d7fa96536b66d4fcacbafad8dc1e5, they were ineffectu... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=ed5731dcc41db31fd699d1f4e4b250e83b10308e Revert the changes from 65ebf57c1e5d7fa96536b66d4fcacbafad8dc1e5, they were ineffectual against IE's insanity: ejohn.org/files/bugs/fragment/ Used a different tactic instead (just don't return a fragment from .parent()). Fixes #5638. --- 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");},