将部分添加到包含部分的循环中的第一个和最后一个

adding sections to first and last in for loop containing sections

首先,我使用 Plate CMS(在 shopify liquid 上运行),这是创建您在上图中看到的 sections

现在我正在为一个小问题而苦恼。我想循环所有 6 个部分,但其中只有 4 个放在 div 中,另外 2 个(页眉和页脚)被称为 tray's,这意味着有些不同并且不会放在 div.

里面

我知道我可以使用这样的东西循环遍历 4 个部分:

$('#mydiv > section').each(function () { /* ... */ });

但问题是我不能 select 这样处理页眉和页脚。 然后我循环上面的 div 它会循环 <div data-id="post_15757"> 而不是里面的部分。

如何使用这样的循环:$('#mydiv > section').each(function () { /* ... */ });,同时添加页眉和页脚?

您可以使用jQuery add

let $div = $('#mydiv");
$('> section',$div).add($div.prev()).add($div.next())

或顺序:

let $sections = $('section').first(), $div = $sections.next();
$sections.add($('> section',$div).add($div.next())

或者只是

const $sections = $('section');

您还可以 select 数据属性:

var sections = $('[data-plate-object="section"]');

$.each(sections, function(idx, val){
    // apply logic
});

这几乎可以肯定,CMS 创建的部分将被 selected,而不是来自集成的 HTML 个部分。