jQuery 为每个 div class 找到 child 和 insertAfter

jQuery for each div class find child and insertAfter

我正在编辑我的博客主题,我需要在特定博客中移动(剪切和粘贴)自身下的多个特定 div post。

当前 HTML 将是

<div class="blog_post text_post">
    <div class="post_container">
        <div class="bottom_meta"></div>
        <div class="post_date"></div>
        <div class="moreinfo"></div>
        <!-- I need .bottom_meta here -->
    </div>
</div>

我设法让它像这样工作:

$(".blog_post.text_post .bottom_meta").insertAfter(".blog_post.text_post .moreinfo");

乍一看还不错,但是当我写另一个文本 post(通常 post 是图像)时,它在我的博客上弄得一团糟。 代码现在将 .bottom_meta 从两个 post 移到两个 .moreinfo .

我尝试使用每个功能,但我多次失败...

$(".blog_post.text_post").each(function(){     
     $(this).children(".bottom_meta").insertAfter.$(this).children(".moreinfo");
});

我用 'find' 函数而不是 'children' 尝试了同样的方法,仍然失败。

谁能帮我解决这个问题,或者至少给我指出正确的方向。

应该是:

$(".blog_post.text_post").each(function(){     
    $(this).find(".bottom_meta").insertAfter($(this).find(".moreinfo"));
});

Example Here

  • .insertAfter.$(this).children(...)更改为:.insertAfter($(this).children(...))

  • 此外,由于 .moreinfo/.bottom_meta 元素不是直接子元素,因此您需要使用 .find() 而不是 .children()

你也可以简化为:

$(".blog_post.text_post").each(function () {
    $(".bottom_meta", this).insertAfter($(".moreinfo", this));
});

Example Here