最初のロード後にWebページを動的に更新するには、多くの場合、JavaScriptのAppend、AppendChild、IntersadJacenthtml、またはInnerHTMLメソッドが必要です。適切な方法を選択すると、追加されるコンテンツの種類やブラウザの互換性など、いくつかの要因に依存します。
Webサイトは、基本的に、ブラウザによってドキュメントオブジェクトモデル(DOM)ツリーにレンダリングされたHTMLファイルです。このツリーは、HTML要素(ノード)を表すネストされたオブジェクトで構成されています。 「ノード」、「要素」、「オブジェクト」などの用語は、「オブジェクト」が最も一般的であり、「HTML要素」が最も具体的なもので、「オブジェクト」などの用語が互換性があります。この階層を理解することは、JavaScriptでDOMを操作するために重要です。
ほとんどの追加/挿入方法は、このパターンに従います: Element.method(content)
。要素をターゲットにするには、 document.querySelector()
、 document.getElementById()
、またはdocument.getElementsByClassName()
などの方法を使用します。 getElementsByClassName()
が配列を返すことを忘れないでください。
メソッドの選択は、コンテンツのタイプに大きく依存します。
document.createElement()
を使用して作成するか、domから選択しました。 appendChild
とノードを使用して作業append
。insertAdjacentHTML
とinnerHTML
HTMLを直接ハンドルします。メソッドの互換性の概要は次のとおりです。
方法 | ノード | プレーンテキスト | HTML | インターネットエクスプローラー | セキュリティ上の懸念 |
---|---|---|---|---|---|
append |
はい | はい | いいえ | いいえ | 低い |
appendChild |
はい | いいえ | いいえ | はい | 低い |
insertAdjacentHTML |
いいえ | はい | はい | はい | high(sanitized input) |
innerHTML
|
いいえ | はい | はい | はい | ハイ(イベントリスナーの損失) |
insertAdjacentHTML
)が最も簡単です。appendChild
、 append
)を使用します。insertAdjacentHTML
またはinnerHTML
を使用する前に、ユーザーがサビされたHTMLを消毒します。append
避けてください。さまざまな方法を使用して、新しいユーザー「Dale」をバディリストに追加しましょう。リストにあると仮定します<ul id="buddies"></ul>
と<li><a>...</a></li>
アイテム。
append
const newbuddy = document.createelement( 'li'); const newlink = document.createelement( 'a'); newlink.append( "dale"); newbuddy.append(newlink); document.queryselector( '#buddies')。append(newbuddy);
appendChild
const newbuddy = document.createelement( 'li'); const newlink = document.createelement( 'a'); newlink.textContent = "dale"; newbuddy.AppendChild(NewLink); document.queryselector( '#buddies')。appendchild(newbuddy);
insertAdjacentHTML
document.queryselector( '#buddies')。insertadjacenthtml( 'befored'、 '
innerHTML
(追加することをお勧めしません)document.queryselector( '#buddies')。innerhtml = '
innerHTML
、内側のHTML全体を置き換え、イベントリスナーを削除する可能性があるため、問題があります。
ここでは、すべてのメソッドを紹介する包括的なデモが有益です(簡潔にするためにコードは省略されています)。要約すれば:
innerHTML
避けてください。append
柔軟性を提供し、単純なケースには効率的ですが、IEサポートがありません。appendChild
は広く互換性があり、ノード操作に適しています。insertAdjacentHTML
、正確な配置を提供し、HTML文字列を効果的に処理しますが、ユーザー入力の慎重な消毒が必要です。より高度なDOM操作のために、 before
、 after
、 insertBefore
、およびinsertAdjacentElement
のさらなる調査が奨励されます。
以上がJavaScriptを使用して追加して挿入する方法を比較しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。