附加对象而不是引用

Appending object instead of reference

我正在尝试在 for 循环内的 div 中添加多个 div:

  for( i=0; i<10; i++ )
  {
      $('#parent').append('<div class="child"></div>");
  }

这非常有效,但是当我这样做时:

  for( i=0; i<10; i++ )
  {
      var child = $('<div/>', { class: 'child' });
      $("#parent").append(child);
  }

我得到的结果很奇怪,我相信是因为使用第二种方法,传递的是引用而不是对象本身。我怎样才能将纯对象而不是引用传递给 append 方法?谢谢!

使用jQuerycloning

$("#parent").append(child.clone());

您一遍又一遍地附加同一个对象,所以没有任何反应。它只是取出元素并将其放回原处。

克隆确保它是一个新对象,即原始对象的副本。

以上link:

Consider the following HTML:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

... given the code:

$( ".hello" ).appendTo( ".goodbye" );

The resulting DOM structure would be:

<div class="container">
  <div class="goodbye">
    Goodbye
    <div class="hello">Hello</div>
  </div>
</div>

To prevent this and instead create a copy of the element, you could write the following:

$( ".hello" ).clone().appendTo( ".goodbye" );

This would produce:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">
    Goodbye
    <div class="hello">Hello</div>
  </div>
</div>