此代码有效但应该是循环。我怎样才能做到这一点?

时间:2015-12-09 21:11:44

标签: javascript jquery

有效但有限制。

我知道通过一些迭代会更好,但不确定如何最好地接近。例如,我如何检查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();
    };

5 个答案:

答案 0 :(得分:3)

jQuery内置了循环函数。

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

答案 1 :(得分:3)

你应该可以这样做

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

答案 2 :(得分:1)

只需使用一个循环(假设你有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();
    }
}

答案 3 :(得分:1)

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

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();
    }
});

答案 4 :(得分:1)

使用$.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();
    }

});