It works fine in Firefox and Chrome, but does not work in IE8. Here is the html structure:
This is working for me in IE7:
$('').appendTo($('head'));
Another syntax which might be easier to read:
$('head').append('');
However, calling either .text(val) or .html(val) to set the contents of the style tag will cause an exception to be thrown because they set the innerHTML DOM property which is read-only.
Here is IE's documentation of the innerHTML property:
The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR.