( elems, context, scripts, selection, ignored )
| 4307 | var rhtml = /<|&#?\w+;/; |
| 4308 | |
| 4309 | function buildFragment( elems, context, scripts, selection, ignored ) { |
| 4310 | var elem, tmp, tag, wrap, contains, j, |
| 4311 | fragment = context.createDocumentFragment(), |
| 4312 | nodes = [], |
| 4313 | i = 0, |
| 4314 | l = elems.length; |
| 4315 | |
| 4316 | for ( ; i < l; i++ ) { |
| 4317 | elem = elems[ i ]; |
| 4318 | |
| 4319 | if ( elem || elem === 0 ) { |
| 4320 | |
| 4321 | // Add nodes directly |
| 4322 | if ( jQuery.type( elem ) === "object" ) { |
| 4323 | |
| 4324 | // Support: Android<4.1, PhantomJS<2 |
| 4325 | // push.apply(_, arraylike) throws on ancient WebKit |
| 4326 | jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); |
| 4327 | |
| 4328 | // Convert non-html into a text node |
| 4329 | } else if ( !rhtml.test( elem ) ) { |
| 4330 | nodes.push( context.createTextNode( elem ) ); |
| 4331 | |
| 4332 | // Convert html into DOM nodes |
| 4333 | } else { |
| 4334 | tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); |
| 4335 | |
| 4336 | // Deserialize a standard representation |
| 4337 | tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); |
| 4338 | wrap = wrapMap[ tag ] || wrapMap._default; |
| 4339 | tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; |
| 4340 | |
| 4341 | // Descend through wrappers to the right content |
| 4342 | j = wrap[ 0 ]; |
| 4343 | while ( j-- ) { |
| 4344 | tmp = tmp.lastChild; |
| 4345 | } |
| 4346 | |
| 4347 | // Support: Android<4.1, PhantomJS<2 |
| 4348 | // push.apply(_, arraylike) throws on ancient WebKit |
| 4349 | jQuery.merge( nodes, tmp.childNodes ); |
| 4350 | |
| 4351 | // Remember the top-level container |
| 4352 | tmp = fragment.firstChild; |
| 4353 | |
| 4354 | // Ensure the created nodes are orphaned (#12392) |
| 4355 | tmp.textContent = ""; |
| 4356 | } |
| 4357 | } |
| 4358 | } |
| 4359 | |
| 4360 | // Remove wrapper from fragment |
| 4361 | fragment.textContent = ""; |
| 4362 | |
| 4363 | i = 0; |
| 4364 | while ( ( elem = nodes[ i++ ] ) ) { |
| 4365 | |
| 4366 | // Skip elements already in the context collection (trac-4087) |
no test coverage detected