代码之家  ›  专栏  ›  技术社区  ›  delboy1978uk

jQuery select by data属性和:最后一个子项[重复]

  •  0
  • delboy1978uk  · 技术社区  · 6 年前

    希望这应该是相当简单的一些你JS专家在那里!

    好的,我有各种各样的 <section> data-week 属性。每个部分也有一个 data-date 属性。

    我要把最后一部分按 数据周

    当我这样做时,我得到两个结果:

    let sections= $('section[data-week="' + thisWeek + '"]');
    

    我只需要最后一个。我试图补充 :last-child 这样地:

    let lastSectionOfThisWeek = $('section[data-week="' + thisWeek + '"]:last-child');
    

    但那一点回报都没有。如何将这两种方法结合使用,以获得带有周数的最后一节?

    4 回复  |  直到 6 年前
        1
  •  3
  •   Quentin    6 年前

    :last-child 方法 最后一个孩子 与选择器其余部分也匹配的最后一个子级 .

    鉴于: <a /><a /><b /><b /> 然后 b:last-child b ,我也会的 :最后一个孩子 a:last-child 不会匹配任何东西因为 a 元素是最后一个子元素。

    把所有的元素都找出来,然后 pluck the last one off the set :

    let lastSectionOfThisWeek =  $('section[data-week="' + thisWeek + '"]').last();
    

    the jQuery-specific :last filter :

    let lastSectionOfThisWeek =  $('section[data-week="' + thisWeek + '"]:last');
    
        2
  •  2
  •   Mamun    6 年前

    你可以用 .last()

    let thisWeek = "1";
    
    let lastSectionOfThisWeek = $('section[data-week="' + thisWeek + '"]').last();
    
    console.log(lastSectionOfThisWeek.text().trim());
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <section data-week="1" data-date="10/10">
      Section 1
    </section>
    <section data-week="1" data-date="10/11">
      Section 2
    </section>
        3
  •  1
  •   mehmetseckin    6 年前

    使用 :last

    var thisWeek = "week";
    
    console.log($(`section[data-week=${thisWeek}]:last`).attr("id")) // third
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <section id="first" data-week="week">First</section>
    <section id="second" data-week="week">Second</section>
    <section id="third" data-week="week">Third</section>
        4
  •  0
  •   Osama    6 年前

    而节是数组,因此可以通过这种方式获取最后一个值

    let sections= $('section[data-week="' + thisWeek + '"]');
    let lastsection= sections[sections.length-1];