need: |
Review → Patch
|
owner: |
→ john
|
The error occurs in IE8 RC1 as well, in jQuery.clean on this line:
fragment.appendChild( ret[i] ); // "Invalid argument"
It's trying to append the text node in ret[i]. This is new to 1.3; 1.2.6 used a different approach for jQuery.clean. These will work in IE in 1.3:
$('<p></p>').append(" ");
$('<p></p>').append("<p>test</p>", "<div>test</div>");
but these will not:
$('<p></p>').append(" ", " ");
$('<p></p>').append(" ", "<p>test</p>");
$('<p></p>').append("testing", "123");
Tracing it in the IE8 debugger, what seems to be happening is that the text node stored in
ret
becomes invalid when the second argument is processed by assigning into
div.innerHTML
. In 1.2.6 the div was inside the
jQuery.each(elems ...
function, but in 1.3 it was hoisted out and accessed by closure. When I moved it back inside the function, IE seemed to be satisfied again.
The error occurs in IE8 RC1 as well, in jQuery.clean on this line:
It's trying to append the text node in ret[i]. This is new to 1.3; 1.2.6 used a different approach for jQuery.clean. These will work in IE in 1.3:
but these will not:
Tracing it in the IE8 debugger, what seems to be happening is that the text node stored in
becomes invalid when the second argument is processed by assigning into . In 1.2.6 the div was inside the function, but in 1.3 it was hoisted out and accessed by closure. When I moved it back inside the function, IE seemed to be satisfied again.