5

私は別の中に2つのdiv要素を持っています。時々、ユーザーの双方向性から、これらの2つのアイテムが削除され、2つの新しい要素が配置されます。

最初に既存の要素を削除するのは適切ですか?または、HTMLを上書きしますか?それとも重要ですか?

$('#item1').remove();
$('#item2').remove();
$('#itemWindow').append(newItem1);
$('#itemWindow').append(newItem2);

または単に

$('#itemWindow').html(newItem1);
$('#itemWindow').append(newItem2);

1つはコードが少ないですが、代わりにアイテムを削除する必要がありますか?アイテムにはリスナーがいませんが、リスナーがいる場合、違いはありますか?

私はJSとjQueryに飛び込んでいるActionScript開発者です。ASでは、リスナーが存在する場合は、適切なメモリ収集のために、最初にアイテムを削除してオブジェクトとの関係を切断するのが適切です。これらのルールはJSとjQueryで同じですか?

ありがとう!

4

4 に答える 4

3

違いはありません。したがって、先に進んで2番目の方法を使用できます。これを使うときのように

$('#itemWindow').html(newItem1);

$('#item1')$('#item2')交換されます。したがって、それらを手動で削除することをスキップできます。

@glavićがコメントで述べたようにhtml、jQueryソースのメソッドの定義をここで 見るとhttps://github.com/jquery/jquery/blob/master/src/manipulation.js#L213 最後にそれがありますこれらの行

 if ( elem ) {
    this.empty().append( value );
 }

この場合elemはどこに当てはまりますか。したがって、要素はにemptiedなり、新しい要素はになりますappended

また、リスナーが含まれている場合は、 $。onを使用するなど、動的に追加された要素で機能するようにリスナーをバインドする必要があります。

于 2012-06-01T20:42:41.523 に答える
0

$('#item1')。remove(); IDがitem1の要素を削除します

$('#item1')。html(newItem1); IDがitem1の要素内にhtmlを設定します

于 2012-06-01T20:43:15.770 に答える
0

実際に削除するものを具体的にしたい場合、たとえば、削除する必要のある要素が1つあり、他の要素はない場合は、最初の方法をお勧めします。毎回すべてを置き換えるだけの場合は、またはのいずれかを自由に使用してください。唯一の問題は、読みやすいものです。

于 2012-06-01T20:47:05.413 に答える
0

アイテムにリスナーがある場合は、最初の方法がより適切です。.remove()アイテム自体とすべてのバインドされたイベントを削除します。アイテムが削除されたがイベントではない場合、将来エラーが発生する可能性があります。ただし、制限されたイベントがない場合は、2番目の方法を使用できます-cozlessコード。

于 2012-06-01T20:53:30.643 に答える