2010-05-10 35 views
0

我想写一些jquery,它可以找到div(.content)中的所有h2标签,然后将每个标签附加到另一个div(.intro)中。jquery找到h2标签并追加到div

到目前为止,我有这样的:

var h2 = $(".content").find("h2"); 
$(h2).each(function() { 
    $(this).append(".intro"); 
}); 

但它不工作..如果有人可以帮助我,那简直太好了:)

+0

,如果你想克隆或刚刚转会反正是不明确! – 2010-05-10 22:41:07

+1

一个常见的错误是在不需要时使用'each()'。当你有一组元素时(比如你的'find()'结果),你可以一次调用集合上的函数,而不需要迭代元素并单独对每个元素进行操作。 – user113716 2010-05-10 22:47:16

回答

3

试试这个:

var h2 = $('h2', '.content'); 
$('.intro').append(h2); 

无需使用each()。 jQuery有一个叫做“隐式迭代”的东西,你可以一次处理整个集合。所以你可以抓住它们,并将它们全部附加在一起。

或者您是否想追加它们的副本?

如果是这样,请尝试:

var h2 = $('h2', '.content'); 
$('.intro').append(h2.clone()); 

编辑:如果您不

$('.intro').append($('h2', '.content').clone());​ 

(当然,去掉.clone()

或者使用单行版本不需要复制它们。)

2

我认为你正在寻找的appendTo方法。

var h2 = $(".content").find("h2"); 
$(h2).each(function() { 
    $(this).clone().appendTo($(".intro")); 
}); 

编辑:只注意到appendTo被移动h2标签,使柜面对于不需要的,添加了调用clone()

2

能使用儿童(),像...

$('.content').children('h2').each(function() { 
    $(this).appendTo($('.intro')); 
});