web-dev-qa-db-ja.com

innerHTMLとcreateTextNodeを使用してスパンを埋めるのに大きな違いはありますか?

タイトルはかなり明確です。スパンをテキストで埋めるために、innerHTMLcreateTextNodeAppendとともに使用)の間に大きな違いはありますか?

29
Jeff Noel

もちろん。 createTextNode は文字列をエスケープしてそのまま表示しますが、 innerHTML はhtmlのような文字列をDOMにレンダリングできます。それを望まない場合(たとえば、リテラルを直接割り当てる場合など、テキストにエスケープされていないタグが含まれていないことが確実でない限り)、 textContent (または innerText IEの場合)。

それでも、createTextNodeをお勧めします。これは、すべてのブラウザーが問題なく同じようにサポートしているためです。

35
Bergi

オンラインで調査を行ったところ、これが私が見つけたものです。これは高レベルでそれをカバーする必要があります:

0
venkat0591

私の理解では、innerHTMLの特定の操作により、バインドされたすべてのイベントが削除されるため、createTextNodeを使用することをお勧めします。

0
jeesty