2010-05-10 43 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')); 
});