6

選択ボックス、テーブル、またはリストなどの HTML 要素をクリアする場合、ノードを削除する (例: ) か、単に innerHTML を空にする (例: ) 方が良い/速いselect.options.remove(i)ですtable.deleteRow(i)select.innerHTML = ""? それとも関係ありますか?

例として、テーブルの再初期化があります。特定の選択フィールドの値は、後続の HTML テーブルに対して異なる値をロードする必要があります。選択値が変更されると、テーブルを再初期化する必要があります。

4

3 に答える 3

5

IE では、select 要素の innerHTML を設定できません。したがって、クロスブラウザー ソリューションの場合、唯一の方法は子ノードを追加/削除することです。

于 2013-08-06T16:21:55.257 に答える
3

壊れていない新しいテストを作成しました。

http://jsperf.com/innerhtml-vs-removechild/67

サンプルセットアップの一部がテストの一部であるため、これも完璧ではなく、結果が歪む可能性があります.

これにより、innerHTMLより高速になりますが、どの程度かはわかりません。

于 2013-08-06T16:14:55.453 に答える
2

この会話ごと: JavaScript でノードを空にする最良の方法は何ですか?

このテストでは、このアプローチがすべてのwhile (elm.firstChild) {elm.removeChild(elm.firstChild);}ブラウザーで最良の結果を得たようです。

(これを回答ではなくコメントとして入れたでしょうが、コメントは非常に速く来るので、迷子になりたくありませんでした。)

于 2013-08-06T16:25:57.003 に答える