2013-04-26 99 views
1

我有一個簡單的UL與所有LI的class =「event」。appendTo不按預期工作

下面的jQuery沒有按預期工作。

$('#calendar-feed li.event').each(function() { 
    $(this).find('h3').appendTo('h4'); 
}); 

我想在每一個LI中採用唯一的h3並將它追加到該LI中唯一的h4。

目前它將所有H3和克隆到每個H4。

我的語法錯了嗎?或者我在想這個錯誤的方法?

回答

3

這樣做,因爲appendTo是一個新的選擇器,它可以包含頁面內的任何內容。所以你選擇了頁面中的所有H4並將它們添加到LI h3。

$('#calendar-feed li.event').each(function() { 
    $(this).find('h3').appendTo($(this).find('h4')); 
}); 
+0

這個工作。我有一個jQuery的體面的工作知識,但我沒有一個程序員的頭腦......無論出於什麼原因,我在想,因爲它是在一個.each函數中,它只會在特定的LI中查找。 感謝您的幫助。 – Sean 2013-04-29 00:03:22

2

我認爲你需要得到正確的h4內循環,這樣的事情:

$('#calendar-feed li.event').each(function() { 
    var h4 = $(this).find('h4'); 
    $(this).find('h3').appendTo(h4); 
}); 

Here is a working example

+0

我沒有嘗試這個特定的解決方案,但我想它也可以工作,現在看到我做錯了什麼。 – Sean 2013-04-29 00:04:17

0

這是沒有意義的附加<h3>INTO<h4>

我猜你想要的是把<h3><h4>,交換它們的位置(儘管它仍然意義不大,如果你使用這些標籤,但無論如何)

$('#calendar-feed li.event h3').each(function (i, h3) { 
    var $h3 = $(h3); 
    $h3.after($h3.closest('li').find('h4')); 
}); 

或者如果您希望<h3>保證爲每個<li>中的最後元素,則請執行此操作

$('#calendar-feed li.event h3').each(function (i, h3) { 
    var $h3 = $(h3); 
    $h3.appendTo($h3.closest('li')); 
}); 

DEMOhttp://jsfiddle.net/terryyounghk/sN7Mf/

+0

我確實希望h3內部的h4。主要是因爲我需要如何設計它,而且我不能重寫CMS如何寫出標記。 – Sean 2013-04-28 23:55:32