此代码有效,但应该是一个循环.我该怎么做

This code works but should be a loop. How can I do that?

本文关键字:一个 我该怎么做 循环 有效 代码      更新时间:2023-09-26

有效,但有局限性。

我知道进行一些迭代会更好,但不确定如何实现最佳方法。例如,我如何检查20项,而不是这里的4项,但将"20"编码为var,以便轻松切换到"30"?

    e0 = $('li:eq(0) a').attr('data-pubdate');
    e1 = $('li:eq(1) a').attr('data-pubdate');
    e2 = $('li:eq(2) a').attr('data-pubdate');
    e3 = $('li:eq(3) a').attr('data-pubdate');
    e4 = $('li:eq(3) a').attr('data-pubdate');

    if (e0 > lastCheckDate) {      
        thisEID = $('li:eq(0) a').attr('data-itemid');
        sendNewOne();
    };
    if (e1 > lastCheckDate) {    
        thisEID = $('li:eq(1) a').attr('data-itemid');
        sendNewOne();
    };
    if (e2 > lastCheckDate) {
        thisEID = $('li:eq(2) a').attr('data-itemid');
        sendNewOne();
    };
    if (e3 > lastCheckDate) {    
        thisEID = $('li:eq(3) a').attr('data-itemid');
        sendNewOne();
    };
    if (e4 > lastCheckDate) {    
        thisEID = $('li:eq(4) a').attr('data-itemid');
        sendNewOne();
    };

你应该能够像这个一样完成

$('li a').each(function(){
    e = $(this).attr('data-pubdate');
    if (e > lastCheckDate) {      
        thisEID = $(this).attr('data-itemid');
        sendNewOne();
    };
});
jQuery内置了循环函数。
$('li').each(function(){
    var e = $(this).find('a').attr('data-pubdate');
    if(e > lastCheckDate){
        thisEID = $(this).find('a').attr('data-itemid');
        sendNewOne();
    }
});

只需使用一个循环(假设您有200个元素。)

var i;
for (i = 0; i < 200; i++) {
    if ($('li:eq(' + i + ') a').attr('data-pubdate') > lastCheckDate) {      
        thisEID = $('li:eq(' + i + ') a').attr('data-itemid');
        sendNewOne();
    }
}

对于您的情况,您可以执行以下操作。

var elements = 5;
for (var i = 0; i < elements; i++) {
    var element = $('li:eq(' + i + ') a');
  if (element.attr('data-pubdate') > lastCheckDate) {      
      thisEID = element.attr('data-itemid');
    sendNewOne();
    }
}

你也可以得到这样的总元素。

var elements = $('li a');
$.each(elements, function () {
  if ($(this).attr('data-pubdate') > lastCheckDate) {      
      thisEID = $(this).attr('data-itemid');
    sendNewOne();
    }
});

使用$.each():

$.each($('li a'), function(index, anchor)
{
    var pubdate = $(anchor).data('pubdate'); // Use .attr('data-pubdate') for dynamically generated elements
    if (pubdate > lastCheckDate)
    {
        thisEID = $(anchor).data('itemid');
        sendNewOne();
    }
});
相关文章: