【javascript】innerHTMLとcreateTextNode
問題
document.getElementById(“xxx”).innerHTML = “»”;
は » が表示される。
document.getElementById(“xxx”).appendChild(document.createTextNode(“»”));
は » が表示される。
createTextNode使いたいんだけど、どうしたらいい?
答え
こうしてください。
document.getElementById("xxx").appendChild(document.createTextNode("\u00bb"));
createTextNodeに渡すのは、HTMLの中の文字列ではなくて、Javascriptの純粋な文字列。
createTextNodeに渡す文字列に、HTMLエンティティは使えないけど、U+****形式(Unicodeエスケープシーケンス)が使える。
他の文字だと、以下のように。
文字 | innerHTML | createTextNode |
---|---|---|
& | & | \u0026 |
> | > | \u003e |
< | < | \u003c |
" | " | \u0022 |
コメント