appendTo不按预期工作

时间:2013-04-26 16:20:12

标签: jquery append appendto

我有一个简单的UL,所有LI都有class =“event”。

以下jQuery未按预期工作。

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

我想把每个LI中唯一的h3加到那个LI中唯一的h4。

目前它正在接收所有H3并将它们克隆到每个H4中。

我的语法是错误的还是我错误的想法?

3 个答案:

答案 0 :(得分:3)

执行此操作,因为appendTo是一个新的选择器,可以包含页面中的任何内容。所以你在页面中选择了所有H4并将它们添加到LI h3。

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

答案 1 :(得分:2)

我认为你需要在循环中获得正确的h4,如下所示:

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

Here is a working example

答案 2 :(得分:0)

添加<h3> INTO <h4>毫无意义。

我想你想要的是放置<h3> AFTER <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'));
});

DEMO http://jsfiddle.net/terryyounghk/sN7Mf/