IEでpreタグのinnerHTMLに代入すると勝手にエンティティ化されるばかりか改行コードも空白になっちゃう(※前回エントリ)ということで、jQueryでhtml()を使ってもだめなわけです。
<script type="text/javascript">
$("#hoge").html("hoge\nhoge");
</script>
<pre id="hoge"></pre>
で、どうしたらいいか。そんなことは知らないけれども私の場合は次のようにしました。
createTextNodeでは\nはだめでも\rは使えるっぽいのでこれを使う。
<script type="text/javascript">
if ($.browser.msie) {
$("#hoge").append(document.createTextNode("hoge\nhoge".replace(/\r?\n/g, "\r")));
} else {
$("#hoge").html("hoge\nhoge");
}
</script>
<pre id="hoge"></pre>
textareaのvalueなどから改行つきのデータを取ってきてpreタグに代入するとか言う場合はこんなことをすればいいかと。
で、こうやったのはいいんだけど、preタグの中をクリアしたいとき、
$("#hoge *").remove();
とか
$("#hoge").html("");
ではだめだった。
$("#hoge").empty();
でOKだった。
以上