タイトルはかなり明確です。スパンをテキストで埋めるために、innerHTML
とcreateTextNode
(Append
とともに使用)の間に大きな違いはありますか?
もちろん。 createTextNode
は文字列をエスケープしてそのまま表示しますが、 innerHTML
はhtmlのような文字列をDOMにレンダリングできます。それを望まない場合(たとえば、リテラルを直接割り当てる場合など、テキストにエスケープされていないタグが含まれていないことが確実でない限り)、 textContent
(または innerText
IEの場合)。
それでも、createTextNode
をお勧めします。これは、すべてのブラウザーが問題なく同じようにサポートしているためです。
オンラインで調査を行ったところ、これが私が見つけたものです。これは高レベルでそれをカバーする必要があります:
elem。createTextNode(text)およびelem。textContent= text do theまったく同じこと(src: https://javascript.info/task/createtextnode-vs-innerhtml )
textContentはノードに含まれる全文を返しますが、innerTextはのみを返しますノードに含まれる表示テキスト。 (src: textContentとinnerTextの違い )
私の理解では、innerHTMLの特定の操作により、バインドされたすべてのイベントが削除されるため、createTextNodeを使用することをお勧めします。