SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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
< &lt; \u003c
" &quot; \u0022

関連するメモ

コメント