Я пытаюсь запустить оператор if else с помощью jQuery. Я считаю, что я следовал правильной структуре, но код не работает.
Я считаю, что это имеет какое-то отношение к характеру высказываний, где одно переопределяет другое, независимо от того, что я написал.
Выполняется последнее else if, но средний нет?
Вот скрипка http://jsfiddle.net/gdcx7/
См. Код ниже
<body>
<div class="thumb-holder">
<div class="post-title" data-date="Tuesday,14 December 2013" data-time="18:00">
<img class="featured-thumb" src="http://web-vassets.ea.com/Assets/Richmedia/Image/FeaturedGame/crysis3_298x168.jpg?cb=1334583481" alt="tag test" style="width:250px;height:156px" />
</div>
</div>
<div class="thumb-holder">
<div class="post-title" data-date="Tuesday,14 December 2012" data-time="18:00">
<img class="featured-thumb" src="http://web-vassets.ea.com/Assets/Richmedia/Image/FeaturedGame/crysis3_298x168.jpg?cb=1334583481" alt="tag test" style="width:250px;height:156px" />
</div>
</div>
<div calss="thumb-holder">
<div class="post-title" data-date="Tuesday,14 December 2012" data-time="18:00">
<img class="featured-thumb" src="http://web-vassets.ea.com/Assets/Richmedia/Image/FeaturedGame/crysis3_298x168.jpg?cb=1334583481" alt="tag test" style="width:250px;height:156px" />
</div>
</div>
<div class="thumb-holder">
<div class="post-title" data-date="Thursday,27 February 2014" data-time="18:00">
<img class="featured-thumb" src="http://web-vassets.ea.com/Assets/Richmedia/Image/FeaturedGame/crysis3_298x168.jpg?cb=1334583481" alt="tag test" style="width:250px;height:156px" />
</div>
</div>
<div class="thumb-holder">
<div class="post-title" data-date="Thursday,25 December 2014" data-time="18:00">
<img class="featured-thumb" src="http://web-vassets.ea.com/Assets/Richmedia/Image/FeaturedGame/crysis3_298x168.jpg?cb=1334583481" alt="tag test" style="width:250px;height:156px" />
</div>
</div>
$('.post-title').each(function () {
//1 day old
if (new Date($(this).data('date')).getTime() < new Date().getTime()) {
$(this).css({
opacity: 0.5,
border: '2px solid blue'
});
}
//older than 7 days
else if (new Date($(this).data('date')).getTime() < new Date().getTime() - (24 * 7) * 60 * 60 * 1000) {
$(this).css({
opacity: 0.5,
border: '2px solid red'
});
}
//7 days to go
else if (new Date($(this).data('date')).getTime() < new Date().getTime() + (24 * 7) * 60 * 60 * 1000) {
$(this).css({
opacity: 0.5,
border: '2px solid green'
});
}
});
Используйте условие ниже в вашем случае, если clause-
if (new Date($(this).data('date')).getTime() < new Date().getTime() && new Date($(this).data('date')).getTime() > new Date().getTime() - (24 * 1) * 60 * 60 * 1000)
{
-----
}
Отдых в порядке. Это проверяет, принадлежит ли время тестирования последним 24 часам, то есть 1-дневному. В противном случае условие if проверяется, если метка времени меньше, чем сейчас, означает любое время до этого.
Также последний, если условие может be-
else if (new Date($(this).data('date')).getTime() < new Date().getTime() + (24 * 7) * 60 * 60 * 1000 && new Date($(this).data('date')).getTime() > new Date().getTime())
{
------
}
т.е. если время тестирования меньше, чем на 7 дней и больше, чем текущее время.
Это потому, что вы выполняете минимальное ограничение:
если это в прошлом, то если менее 7 дней, то если менее 7 дней
Firs toff, обратите внимание, что последние два условия идентичны. Насколько я понимаю, последний из них существует в будущем? Если это так, измените свой тестовый знак и переведите его в>
Все это сказало, вы должны обратить вспять ifses и в итоге:
если в будущем тогда //else, если в последние 7 дней, то //, то//старше 7 дней)
Дополнительные примечания: - пожалуйста, храните дату в локальной переменной, чтобы сделать код доступным и менее голодным; - возьмите сейчас первое время (по тем же причинам) плюс, ech время, когда вы вызываете getTime, результат изменяется по времени, вызвав промежуток времени (миллисекунды, но...)