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