jQuery克隆元素仅在循环内附加一次克隆项

时间:2018-11-17 16:57:25

标签: javascript jquery append clone

我正在尝试根据数字字段的数字输入来克隆一组文本。似乎我得到的代码仅将项目附加一次到before test.InspectMe.outer() after test.InspectMe.outer() 元素中。 .wrap是否有限制,或者我忽略的其他限制只能将项目附加一次?

我期望发生的事情
我期望在下面的代码中发生的是,.clone()值被更新(假设为3),克隆了.duplicate元素,然后清空了.target元素,并且循环运行并追加存储在.wrap中的3个克隆。最后的$clone元素应包含3个.wrap元素。

正在发生什么:
上面的事情似乎发生了,但最后只有1个<h2>Target</h2>元素附加到了<h2>Target</h2>元素上。

代码:

.wrap
$( 'body' ).change( '.duplicate', function() {
	
  var count  = $( '.duplicate' ).val(),
      $clone = $( '.target' ).clone(),
      i      = 1;

  $( '.wrap' ).html( '' );

  while ( i <= count ) {

    $( '.wrap' ).append( $clone );

    i++;

  }

} );
.duplicate {
  width: 200px;
}

1 个答案:

答案 0 :(得分:1)

每次迭代都需要一个新的克隆,否则每次只需移动原始克隆

另外,一旦您拥有该类中的一个以上,就只想克隆其中一个

 $clone = $( '.target' ).first().clone()

 while ( i <= count ) {
     $( '.wrap' ).append( $clone.clone() );