Try closing the tag, ie:

$('#myDiv').append($('<h2></h2>'));

Actually the second $() shouldn't be needed:

$('#myDiv').append('<h2></h2>');

Karl Rudd

On Mon, Jan 12, 2009 at 7:35 AM, Joe White <vulcanvik...@gmail.com> wrote:
>
> I'm troubleshooting a problem where my text wasn't showing up in IE.
> I've narrowed the problem down to creating a DOM node dynamically
> (with $(html)) and then passing it to append(). In FireFox, append
> will add the node as expected; but when passed a dynamically-created
> node in IE, it does nothing. No error message is displayed; it just
> silently fails, and no node is added to the page.
>
> Here's a trivial example:
>
> $('#myDiv').append($('<h2>'));
>
> I put that code into the ready event, on a page with a div id="myDiv".
> I also added some CSS to put a border on the h2, so I'd be able to see
> whether it got added. Result: in FireFox, I can see the border,
> proving that the h2 got added. In IE, nothing. No error.
>
> If, instead, I find an existing <h2> using its selector (e.g. $
> ('#myH2')), and append() that (instead of a dynamically-created one),
> then IE works fine; it moves that existing element into myDiv. It
> appears to just be when a DOM element is dynamically created with $
> (html), and then append()ed, that there's a problem.
>
> Full example:
>
> <html>
> <head>
> <style>h2{border:1px solid blue;}</style>
> <script src="../vendor/jquery/jquery-1.2.6.js"></script>
> <script>
> $(function(){
>  $('#myDiv').append($('<h2>'));
> });
> </script>
> </head>
> <body>
> <div id="myDiv"></div>
> </body>
> </html>
>
> Expected behavior: when you run this, you should get a blank page with
> a 2px-tall blue line extending across the page. (This is the border
> around the h2.) FireFox shows this expected behavior.
>
> Actual behavior (IE6 on Windows): you get a blank page. The status bar
> just says "Done" like usual, and does not show that any errors
> occurred.
>
> Is this a bug in jQuery? Or am I misunderstanding how $(html) is meant
> to be used?
>

Reply via email to