我有一个简单的 UL,所有 LI 都有 class="event"。
以下 jQuery 未按预期工作。
$('#calendar-feed li.event').each(function() {
$(this).find('h3').appendTo('h4');
});
我想取每个 LI 中唯一的 h3 并将其附加到该 LI 中唯一的 h4 中。
目前它正在获取所有 H3 并将它们克隆到每个 H4 中。
我的语法是错误的还是我想错了?
这样做,因为它appendTo
是一个新的选择器,它可以包含页面中的任何内容。因此,您选择了页面中的所有 H4 并将它们添加到 LI h3。
$('#calendar-feed li.event').each(function() {
$(this).find('h3').appendTo($(this).find('h4'));
});
我认为您需要h4
在循环内得到正确的信息,如下所示:
$('#calendar-feed li.event').each(function() {
var h4 = $(this).find('h4');
$(this).find('h3').appendTo(h4);
});
附加<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/