1

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

以下 jQuery 未按预期工作。

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

我想取每个 LI 中唯一的 h3 并将其附加到该 LI 中唯一的 h4 中。

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

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

4

3 回答 3

3

这样做,因为它appendTo是一个新的选择器,它可以包含页面中的任何内容。因此,您选择了页面中的所有 H4 并将它们添加到 LI h3。

$('#calendar-feed li.event').each(function() {
    $(this).find('h3').appendTo($(this).find('h4'));
});
于 2013-04-26T16:22:18.130 回答
2

我认为您需要h4在循环内得到正确的信息,如下所示:

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

这是一个工作示例

于 2013-04-26T16:22:25.183 回答
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>保证是 each 中的最后一个元素<li>,请执行此操作

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

演示:http: //jsfiddle.net/terryyounghk/sN7Mf/

于 2013-04-26T16:38:37.423 回答