0

HTML:

<div class="here">This is here</div>
<div class="insert">This is to be inserted</div>

jQuery:

$(document).ready(function() {
  var $m = $(".insert");
  $(".here").before($m);
});

期待どおりの結果が得られます - div を切り取り、insertdiv の前に貼り付けhereます。しかし、コードが次のような場合、

$(".here").before($m, $m);

thenはdivinsertの前に 2 回表示されません。hereただしdiv、次の方法で最初の引数以外を 2 番目の引数として使用すると、次のようになります。

$(".here").before($m, $('<div class="insert2">This is insert 2</div>'));

と の両方が の前に表示されinsertます。insert2 divshere div

2 つの引数が同じである場合、なぜ 2 つdivsが の前に表示されないのですか?here div

4

3 に答える 3

0

これは、要素が一度だけ存在できるためです。' .here $(".here").before($m, $m);' の前に element_x を挿入し、'.here' の前に element_x を挿入します。それで、それは移動され、同じ場所に再び移動されます。

2$(".here").before($m, $('<div class="insert2">This is insert 2</div>'));番目のパラメーターで新しい要素を作成しているため、正常に機能します。

要素をコピーして 2 回挿入するには、要素を複製して両方を挿入します。

var $m2 = $m.clone();
$(".here").before($m, $m2);
于 2013-11-12T09:00:51.060 に答える