代码之家  ›  专栏  ›  技术社区  ›  Ramon de Vries

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

  •  1
  • Ramon de Vries  · 技术社区  · 6 年前

    my code

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

    现在,我正在努力解决一个小问题。我想循环所有6个部分,但其中只有4个放在一个div中,另外2个(页眉和页脚)被称为 tray's ,这意味着有一点不同,不会放在该div中。

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

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

    但问题是我不能用这种方式选择页眉和页脚。 然后我在上面的div上循环,它将循环 <div data-id="post_15757"> 而不是里面的部分。

    ,但还要添加我的页眉和页脚吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   mplungjan Gvidas    6 年前

    你可以用 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');
    
        2
  •  1
  •   Tim Vermaelen    6 年前

    您还可以选择“在数据属性上”:

    var sections = $('[data-plate-object="section"]');
    
    $.each(sections, function(idx, val){
        // apply logic
    });
    

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