Fix for #4011, crash when two text nodes are appended in IE.
This commit is contained in:
parent
3c89e38fc2
commit
628e1564c4
|
@ -388,7 +388,7 @@ jQuery.extend({
|
||||||
context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
|
context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
|
||||||
}
|
}
|
||||||
|
|
||||||
var ret = [], div = context.createElement("div");
|
var ret = [];
|
||||||
|
|
||||||
jQuery.each(elems, function(i, elem){
|
jQuery.each(elems, function(i, elem){
|
||||||
if ( typeof elem === "number" ) {
|
if ( typeof elem === "number" ) {
|
||||||
|
@ -408,7 +408,8 @@ jQuery.extend({
|
||||||
// Trim whitespace, otherwise indexOf won't work as expected
|
// Trim whitespace, otherwise indexOf won't work as expected
|
||||||
var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
|
var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
|
||||||
wrap = wrapMap[ tag ] || wrapMap._default,
|
wrap = wrapMap[ tag ] || wrapMap._default,
|
||||||
depth = wrap[0];
|
depth = wrap[0],
|
||||||
|
div = context.createElement("div");
|
||||||
|
|
||||||
// Go to html and back, then peel off extra wrappers
|
// Go to html and back, then peel off extra wrappers
|
||||||
div.innerHTML = wrap[1] + elem + wrap[2];
|
div.innerHTML = wrap[1] + elem + wrap[2];
|
||||||
|
|
|
@ -151,7 +151,7 @@ test("unwrap()", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
var testAppend = function(valueObj) {
|
var testAppend = function(valueObj) {
|
||||||
expect(21);
|
expect(22);
|
||||||
var defaultText = 'Try them out:'
|
var defaultText = 'Try them out:'
|
||||||
var result = jQuery('#first').append(valueObj('<b>buga</b>'));
|
var result = jQuery('#first').append(valueObj('<b>buga</b>'));
|
||||||
equals( result.text(), defaultText + 'buga', 'Check if text appending works' );
|
equals( result.text(), defaultText + 'buga', 'Check if text appending works' );
|
||||||
|
@ -224,6 +224,8 @@ var testAppend = function(valueObj) {
|
||||||
|
|
||||||
t( "Append Select", "#appendSelect1, #appendSelect2", ["appendSelect1", "appendSelect2"] );
|
t( "Append Select", "#appendSelect1, #appendSelect2", ["appendSelect1", "appendSelect2"] );
|
||||||
|
|
||||||
|
equals( "Two nodes", jQuery('<div />').append("Two", " nodes").text(), "Appending two text nodes (#4011)" );
|
||||||
|
|
||||||
// using contents will get comments regular, text, and comment nodes
|
// using contents will get comments regular, text, and comment nodes
|
||||||
var j = jQuery("#nonnodes").contents();
|
var j = jQuery("#nonnodes").contents();
|
||||||
var d = jQuery("<div/>").appendTo("#nonnodes").append(j);
|
var d = jQuery("<div/>").appendTo("#nonnodes").append(j);
|
||||||
|
|
Loading…
Reference in a new issue