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