2010-10-29 75 views
1

我想获取选定的元素,然后在少数地方插入它的副本。如何在jQuery中获取整个元素的副本?

var template = $("#info-" + country + " > .stats > .template").clone(); 
$(template).insertBefore("#info-" + country + " > .stats > .template"); 

我做错了,它不复制元素并插入它?

P.S.我选择要复制的元素是display:none。

回答

1

您有一个额外的包装有,template已经是一个jQuery对象,你只需要:

var template = $("#info-" + country + " > .stats > .template").clone(); 
template.insertBefore("#info-" + country + " > .stats > .template"); 

或者简单一点:

var template = $("#info-" + country + " > .stats > .template"); 
template.clone().insertBefore(template); 

或者使用.before()与函数,这样:

$("#info-" + country + " > .stats > .template").before(function() { 
    return $(this).clone(); 
}); 
+0

嗯,试过第三个例子,什么也没有发生。现场示例:http://apps.s tarchat.ee/stats.php – Rihards 2010-10-29 17:18:41

+0

@Richards - 你的选择器与你的标记不匹配,里面有一个'.map',像这样:'$(“#instance-”+ country +“> .content> .stats > .map> .template“)' – 2010-10-29 17:25:11

+0

Bwaah,我甚至没有注意到它 - 我认为它会检查所有的孩子,不是吗?十分感谢! :) – Rihards 2010-10-29 17:29:20