克隆div的具体内容并放入其他div

时间:2010-08-21 09:23:33

标签: javascript jquery css jquery-selectors

当我尝试使用jquery克隆一个元素时,我有一点问题我有这个,我想克隆一个名为clone的div,并在其他地方放入其他div。

<li class="jqModal"  >
    <div class="clone">
    <div class="image">
            <img src="<?php echo $products[$j]['thumb']; ?>"
                 title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" />
    </div>
    <h2><a href=""><?php echo $products[$j]['name']; ?></a></h2>
    <strong class="price"><?php echo $products[$j]['price']; ?></strong>
    <a href="<?php echo $products[$j]['href']; ?>">More details</a>
    </div>


</li>`

我在准备好的文件中使用了这个

$(document).ready(function () {
   $(".product-list li").hover(
      function () {
         //replace image and id
         $var = $(this).clone(false).find("#clone").
         $('#div-to-replace').replaceWith($var);
      }
   );
});

但它没有任何建议,谢谢你提前。 :)

2 个答案:

答案 0 :(得分:1)

试试这个:

$(".product-list li").hover(
    function () {
        //replace image and id
        $var = $('.clone', this).clone();
        $('#div-to-replace').replaceWith($var);
    }
);

您的代码更改:

  1. 您想要使用“clone”克隆元素,而不是id:#clone - &gt; .clone
  2. 如果您首先克隆然后找到该元素,那么您克隆的太多了,所以我更改了克隆的选择器
  3. 在这一行的末尾有一个点,其中应该是一个分号。

答案 1 :(得分:1)

我在这里看到了3个问题,首先是这一行:

$var = $(this).clone(false).find("#clone").

您最后需要;而不是.,因此您不会收到语法错误,clone也是而不是#ID,因此您需要.find('.clone')。然后在这里:

$('#div-to-replace').replaceWith($var);

你要替换的<div>将完全消失,所以下次无法使用,我想你想要的是:

var product = $(this).find('.clone').clone();
$('#div-to-replace').empty().append(product);

这不会取代#div-to-replace,而是将内容放在那里,否则当您停留下一个产品时,您将错过<div>。另外一定要在创建局部变量时使用var,这样它就不会产生不必要的副作用,而不会产生全局变量:)