git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1bac616
)
Make sure that dynamically-created elements don't have a parent. Fixes #5638.
author
John Resig
<jeresig@gmail.com>
Fri, 11 Dec 2009 01:01:04 +0000
(17:01 -0800)
committer
John Resig
<jeresig@gmail.com>
Fri, 11 Dec 2009 01:01:04 +0000
(17:01 -0800)
src/core.js
patch
|
blob
|
history
test/unit/core.js
patch
|
blob
|
history
diff --git
a/src/core.js
b/src/core.js
index
756117c
..
7be1512
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-50,7
+50,7
@@
var jQuery = function( selector, context ) {
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {
- var match, elem, ret, doc;
+ var match, elem, ret, doc, parent;
// Handle $(""), $(null), or $(undefined)
if ( !selector ) {
// Handle $(""), $(null), or $(undefined)
if ( !selector ) {
@@
-85,7
+85,12
@@
jQuery.fn = jQuery.prototype = {
} else {
ret = buildFragment( [ match[1] ], [ doc ] );
} else {
ret = buildFragment( [ match[1] ], [ doc ] );
- selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
+ parent = ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment;
+ selector = [];
+
+ while ( parent.firstChild ) {
+ selector.push( parent.removeChild( parent.firstChild ) );
+ }
}
// HANDLE: $("#id")
}
// HANDLE: $("#id")
diff --git
a/test/unit/core.js
b/test/unit/core.js
index
ba7fd17
..
185f77a
100644
(file)
--- a/
test/unit/core.js
+++ b/
test/unit/core.js
@@
-12,7
+12,7
@@
test("Basic requirements", function() {
});
test("jQuery()", function() {
});
test("jQuery()", function() {
- expect(12);
+ expect(15);
// Basic constructor's behavior
// Basic constructor's behavior
@@
-51,10
+51,13
@@
test("jQuery()", function() {
var code = jQuery("<code/>");
equals( code.length, 1, "Correct number of elements generated for code" );
var code = jQuery("<code/>");
equals( code.length, 1, "Correct number of elements generated for code" );
+ equals( code.parent().length, 0, "Make sure that the generated HTML has no parent." );
var img = jQuery("<img/>");
equals( img.length, 1, "Correct number of elements generated for img" );
var img = jQuery("<img/>");
equals( img.length, 1, "Correct number of elements generated for img" );
+ equals( img.parent().length, 0, "Make sure that the generated HTML has no parent." );
var div = jQuery("<div/><hr/><code/><b/>");
equals( div.length, 4, "Correct number of elements generated for div hr code b" );
var div = jQuery("<div/><hr/><code/><b/>");
equals( div.length, 4, "Correct number of elements generated for div hr code b" );
+ equals( div.parent().length, 0, "Make sure that the generated HTML has no parent." );
equals( jQuery([1,2,3]).get(1), 2, "Test passing an array to the factory" );
equals( jQuery([1,2,3]).get(1), 2, "Test passing an array to the factory" );