mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Ref gh-1117: Don't stop on a falsy value in buildFragment. Close gh-1124.
This commit is contained in:
parent
2f6b3f818f
commit
8e6c1ba92f
@ -424,10 +424,14 @@ jQuery.extend({
|
|||||||
buildFragment: function( elems, context, scripts, selection ) {
|
buildFragment: function( elems, context, scripts, selection ) {
|
||||||
var elem, tmp, tag, wrap, contains, j,
|
var elem, tmp, tag, wrap, contains, j,
|
||||||
i = 0,
|
i = 0,
|
||||||
|
l = elems.length,
|
||||||
fragment = context.createDocumentFragment(),
|
fragment = context.createDocumentFragment(),
|
||||||
nodes = [];
|
nodes = [];
|
||||||
|
|
||||||
while ( ( elem = elems[ i++ ] ) || elem === 0 ) {
|
for ( ; i < l; i++ ) {
|
||||||
|
elem = elems[ i ];
|
||||||
|
|
||||||
|
if ( elem || elem === 0 ) {
|
||||||
|
|
||||||
// Add nodes directly
|
// Add nodes directly
|
||||||
if ( jQuery.type( elem ) === "object" ) {
|
if ( jQuery.type( elem ) === "object" ) {
|
||||||
@ -461,6 +465,7 @@ jQuery.extend({
|
|||||||
// Support: Webkit, IE
|
// Support: Webkit, IE
|
||||||
tmp.textContent = "";
|
tmp.textContent = "";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove wrapper from fragment
|
// Remove wrapper from fragment
|
||||||
@ -468,7 +473,6 @@ jQuery.extend({
|
|||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
while ( (elem = nodes[ i++ ]) ) {
|
while ( (elem = nodes[ i++ ]) ) {
|
||||||
contains = jQuery.contains( elem.ownerDocument, elem );
|
|
||||||
|
|
||||||
// #4087 - If origin and destination elements are the same, and this is
|
// #4087 - If origin and destination elements are the same, and this is
|
||||||
// that element, do not do anything
|
// that element, do not do anything
|
||||||
@ -476,6 +480,8 @@ jQuery.extend({
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contains = jQuery.contains( elem.ownerDocument, elem );
|
||||||
|
|
||||||
// Append to fragment
|
// Append to fragment
|
||||||
tmp = getAll( fragment.appendChild( elem ), "script" );
|
tmp = getAll( fragment.appendChild( elem ), "script" );
|
||||||
|
|
||||||
@ -486,7 +492,6 @@ jQuery.extend({
|
|||||||
|
|
||||||
// Capture executables
|
// Capture executables
|
||||||
if ( scripts ) {
|
if ( scripts ) {
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
while ( (elem = tmp[ j++ ]) ) {
|
while ( (elem = tmp[ j++ ]) ) {
|
||||||
if ( rscriptType.test( elem.type || "" ) ) {
|
if ( rscriptType.test( elem.type || "" ) ) {
|
||||||
|
@ -395,7 +395,7 @@ var testAppendForObject = function( valueObj, isFragment ) {
|
|||||||
|
|
||||||
var testAppend = function( valueObj ) {
|
var testAppend = function( valueObj ) {
|
||||||
|
|
||||||
expect( 77 );
|
expect( 78 );
|
||||||
|
|
||||||
testAppendForObject( valueObj, false );
|
testAppendForObject( valueObj, false );
|
||||||
testAppendForObject( valueObj, true );
|
testAppendForObject( valueObj, true );
|
||||||
@ -469,13 +469,13 @@ var testAppend = function( valueObj ) {
|
|||||||
jQuery("#table colgroup").append( valueObj("<col/>") );
|
jQuery("#table colgroup").append( valueObj("<col/>") );
|
||||||
equal( jQuery("#table colgroup col").length, 1, "Append col" );
|
equal( jQuery("#table colgroup col").length, 1, "Append col" );
|
||||||
|
|
||||||
|
|
||||||
jQuery("#form")
|
jQuery("#form")
|
||||||
.append( valueObj("<select id='appendSelect1'></select>") )
|
.append( valueObj("<select id='appendSelect1'></select>") )
|
||||||
.append( valueObj("<select id='appendSelect2'><option>Test</option></select>") );
|
.append( valueObj("<select id='appendSelect2'><option>Test</option></select>") );
|
||||||
t( "Append Select", "#appendSelect1, #appendSelect2", [ "appendSelect1", "appendSelect2" ] );
|
t( "Append Select", "#appendSelect1, #appendSelect2", [ "appendSelect1", "appendSelect2" ] );
|
||||||
|
|
||||||
equal( "Two nodes", jQuery("<div />").append( "Two", " nodes" ).text(), "Appending two text nodes (#4011)" );
|
equal( "Two nodes", jQuery("<div />").append( "Two", " nodes" ).text(), "Appending two text nodes (#4011)" );
|
||||||
|
equal( jQuery("<div />").append( "1", "", 3 ).text(), "13", "If median is false-like value, subsequent arguments should not be ignored" );
|
||||||
|
|
||||||
// using contents will get comments regular, text, and comment nodes
|
// using contents will get comments regular, text, and comment nodes
|
||||||
j = jQuery("#nonnodes").contents();
|
j = jQuery("#nonnodes").contents();
|
||||||
|
Loading…
Reference in New Issue
Block a user