Мой JQuery, если еще, если заявления не работают

0

Я пытаюсь запустить оператор 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'
     });
    }
 });
Теги:
if-statement
date
each

2 ответа

0

Используйте условие ниже в вашем случае, если 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 дней и больше, чем текущее время.

  • 0
    Спасибо, я попробовал это, но я получил тот же самый точный эффект - одно утверждение переопределяет другие - имеет ли это какое-то отношение к необходимости проставлять отметки времени?
0

Это потому, что вы выполняете минимальное ограничение:

если это в прошлом, то если менее 7 дней, то если менее 7 дней

Firs toff, обратите внимание, что последние два условия идентичны. Насколько я понимаю, последний из них существует в будущем? Если это так, измените свой тестовый знак и переведите его в>

Все это сказало, вы должны обратить вспять ifses и в итоге:

если в будущем тогда //else, если в последние 7 дней, то //, то//старше 7 дней)

Дополнительные примечания: - пожалуйста, храните дату в локальной переменной, чтобы сделать код доступным и менее голодным; - возьмите сейчас первое время (по тем же причинам) плюс, ech время, когда вы вызываете getTime, результат изменяется по времени, вызвав промежуток времени (миллисекунды, но...)

  • 0
    Привет, не совсем за тобой. «если это в прошлом, то если менее 7 дней, то если менее 7 дней» Код должен действовать 1 день, затем 7 день и затем будущие даты

Ещё вопросы

Сообщество Overcoder
Наверх
Меню