检查jQuery.each中的最后一次迭代

ryevplcw  于 2022-11-03  发布在  jQuery
关注(0)|答案(6)|浏览(144)

我们如何检查jQuery.each()循环的最后一次迭代?我的循环正在对来自$.ajax请求的对象进行迭代。

jQuery.ajax({
  url: "<?php echo $this->getUrl('xs4arabia/index/getFetchrOrderLogs/'); ?>",
  type: "GET",
  data: {
    tracking_id: tracking_id
  },
  dataType: "json",
  success: function(data) {
    jQuery.each(data, function(key, value) {
      console.log(value);
    })
  }
});
bxpogfeg

bxpogfeg1#

虽然其他答案都是正确的,但我个人最喜欢这种方法,只需编写自己的计数器:

var counter = 0; 

$(yourselector).each(function(index,element){

        counter++; 

        if( counter == $(yourselector).length )
        {
            // Last Element
        }
        else
        {
           // Not last Element
        }

 });
xuo3flqw

xuo3flqw2#

传递给each()处理函数的第一个参数是数组中当前元素的索引(尽管您当前将其命名为key)。您可以将其与数组的长度进行比较,以找出您当前的位置:

$.each(data, function(index, value) {
  var isLastElement = index == data.length -1;
  if (isLastElement) {
    console.log('last item')
  }

  console.log(value);
};

下面是使用本机forEach()方法的另一个示例:

data.forEach((val, i) => {
  var isLastElement = index == data.length -1;
  if (isLastElement) {
    console.log('last item')
  }

  console.log(value);
});
hzbexzde

hzbexzde3#

每个函数的第一个参数等于索引。
因此,您可以将索引与数据的长度进行比较。
请看使用div标签的示例:
第一个
下面是另一个使用包含数组属性的对象的示例:
第一个

bxjv4tth

bxjv4tth4#

You can check the length of data and compare it with the key (note that the first key is 0)

jQuery.ajax({
        url: "<?php echo $this->getUrl('xs4arabia/index/getFetchrOrderLogs/'); ?>",
        type: "GET",
        data: {tracking_id: tracking_id},
        dataType: "json",
        success: function (data) {
        var arrLength = data.length;
        jQuery.each(data, function (key, value) {
              if( key == arrLength - 1 ) {
                  /* this is the last one */
              }
              console.log(value);
        },
 })
kxe2p93d

kxe2p93d5#

每一个都传递给你的函数键和值。2检查键(索引)和数据的长度。

if (key == data.length- 1) {
              console.log('Last field');
          }
ldfqzlk8

ldfqzlk86#

对于form-group的类列表有答案。如果它是for循环的最后一次迭代,它将不执行任何操作。如果它是其他值,它将检查是否已经存在margin-bottom 3 px的引导类,并将其添加

$(".form-group").each(function(index, value) {
    var isLastElement = index == $(this).length;
    if (isLastElement) {
        console.log($(this));
    } else if (!$(this).hasClass("mb-3")) {
        $(this).addClass("mb-3");
    }
});

相关问题