2014-02-20 78 views
0

我試圖運行一個if語句使用jQuery。我相信我遵循了正確的結構,但代碼沒有運行。我的jQuery如果其他語句不工作

我相信它與語句的性質有關,在語句中,無論我寫的if 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' 
    }); 
    } 
}); 

回答

0

這是因爲你做的至少約束第一:

如果是在過去,然後 如果少於7天然後 如果少於7天

冷杉toff,注意最後兩個條件是相同的。據我瞭解,最後一個是未來?如果是的話,改變你的測試標誌,把它轉化爲>

這一切說,你應該扭轉ifses並結了:

如果將來再 // 否則,如果在過去的過去7天然後 // 然後 // 7天以上) 結束

其他注意事項: - 請,存儲在一個局部變量來使代碼lisible和功率不捱餓的日期; - 現在需要時間第一(爲同樣的原因)加,ECH一次調用的getTime,由當時的結果變化及時調用跨度(它的毫秒,但是......)

+0

你好,不要緊緊跟着你。 _「如果是在過去,然後如果少於7天,然後如果少於7天」 _ 的代碼是實現1日齡那麼7天的並且將來日期 – Kulerbox

0

使用以下條件的,如果保留制度

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條件是檢查時間戳是否小於現在意味着現在的任何時間。

也在上如果條件可以是─

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

謝謝,我也嘗試這些,但我得到同樣的確切效果 - 一個陳述覆蓋了其他陳述 - 它是否與通過時間戳有關? – Kulerbox