簡體   English   中英

隱藏前幾個月從當月開始

[英]hide all previous months start from the current month

我有幾個月的清單,現在我想要的是隱藏從當月(3月/ MAR)開始的所有前幾個月。

<ul id="months">
    <li><a class="li-month" data-val="0" href="#JAN">JAN</a></li>
    <li><a class="li-month" data-val="1" href="#FEB">FEB</a></li>
    <li><a class="li-month" data-val="2" href="#MAR">MAR</a></li>
    <li><a class="li-month" data-val="3" href="#APR">APR</a></li>
    <li><a class="li-month" data-val="4" href="#MAY">MAY</a></li>
    <li><a class="li-month" data-val="5" href="#JUN">JUN</a></li>
    <li><a class="li-month" data-val="6" href="#JULY">JULY</a></li>
    <li><a class="li-month" data-val="7" href="#AUG">AUG</a></li>
    <li><a class="li-month" data-val="8" href="#SEP">SEP</a></li>
    <li><a class="li-month" data-val="9" href="#OCT">OCT</a></li>
    <li><a class="li-month" data-val="10" href="#NOV">NOV</a></li>
    <li><a class="li-month" data-val="11" href="#DEC">DEC</a></li>
</ul>

我試過了

$(document).ready(function(){
    $('.li-month[href="#'+moment().format("MMM")+'"]').prevUntil().hide();
});

但不幸的是,沒有工作,任何想法,請幫助嗎?

無需使用循環。 試試以下:

var month = new Date().getMonth();

$('#months').find('[data-val=' + month + ']').parent().prevAll().hide();

看起來快一點jsperf

 var d = new Date(); n = d.getMonth(); console.log(n) $('ul li').each(function() { console.log($(this).find('a').attr('data-val')) if ($(this).find('a').attr('data-val') == n) { $(this).prevAll().hide(); } }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> <ul id="months"> <li><a class="li-month" data-val="0" href="#JAN">JAN</a> </li> <li><a class="li-month" data-val="1" href="#FEB">FEB</a> </li> <li><a class="li-month" data-val="2" href="#MAR">MAR</a> </li> <li><a class="li-month" data-val="3" href="#APR">APR</a> </li> <li><a class="li-month" data-val="4" href="#MAY">MAY</a> </li> <li><a class="li-month" data-val="5" href="#JUN">JUN</a> </li> <li><a class="li-month" data-val="6" href="#JULY">JULY</a> </li> <li><a class="li-month" data-val="7" href="#AUG">AUG</a> </li> <li><a class="li-month" data-val="8" href="#SEP">SEP</a> </li> <li><a class="li-month" data-val="9" href="#OCT">OCT</a> </li> <li><a class="li-month" data-val="10" href="#NOV">NOV</a> </li> <li><a class="li-month" data-val="11" href="#DEC">DEC</a> </li> </ul> 

這樣做吧

這是你的任務。 你忘記了兩件事 - 1)將Mar轉換為MAR和2)轉到上一級以獲得li plunkr

$(document).ready(function(){
    $('.li-month[href="#'+moment().format("MMM").toUpperCase()+'"]').parent().prevUntil().hide();
});

new Date().getMonth()返回0到11之間的數字。檢查data-val attr是否小於當前月份並隱藏父li

 $(document).ready(function() { var month = new Date().getMonth(); $("#months > li > a").each(function() { if ($(this).data("val") < month) { $(this).parent().hide(); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="months"> <li><a class="li-month" data-val="0" href="#JAN">JAN</a> </li> <li><a class="li-month" data-val="1" href="#FEB">FEB</a> </li> <li><a class="li-month" data-val="2" href="#MAR">MAR</a> </li> <li><a class="li-month" data-val="3" href="#APR">APR</a> </li> <li><a class="li-month" data-val="4" href="#MAY">MAY</a> </li> <li><a class="li-month" data-val="5" href="#JUN">JUN</a> </li> <li><a class="li-month" data-val="6" href="#JULY">JULY</a> </li> <li><a class="li-month" data-val="7" href="#AUG">AUG</a> </li> <li><a class="li-month" data-val="8" href="#SEP">SEP</a> </li> <li><a class="li-month" data-val="9" href="#OCT">OCT</a> </li> <li><a class="li-month" data-val="10" href="#NOV">NOV</a> </li> <li><a class="li-month" data-val="11" href="#DEC">DEC</a> </li> </ul> 

嘗試使用.parent().prevUntil() ,如下所示: -

$(document).ready(function(){
    var month = new Date().getMonth();
    $('.li-month[data-val="'+ month +'"]').parent().prevUntil().hide();
});

DEMO

試試這個

  $(document).ready(function(){ var d = new Date(); var i=0; var n = d.getMonth(); $('.li-month').hide(); for(i =0; i < 13 ; i++){ if( i > n || i > n ){ $('[data-val="'+ (i -1) +'"]').show(); } else { $('[data-val="'+ (i -1) +'"]').parent().hide(); } } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <ul id="months"> <li><a class="li-month" data-val="0" href="#JAN">JAN</a></li> <li><a class="li-month" data-val="1" href="#FEB">FEB</a></li> <li><a class="li-month" data-val="2" href="#MAR">MAR</a></li> <li><a class="li-month" data-val="3" href="#APR">APR</a></li> <li><a class="li-month" data-val="4" href="#MAY">MAY</a></li> <li><a class="li-month" data-val="5" href="#JUN">JUN</a></li> <li><a class="li-month" data-val="6" href="#JULY">JULY</a></li> <li><a class="li-month" data-val="7" href="#AUG">AUG</a></li> <li><a class="li-month" data-val="8" href="#SEP">SEP</a></li> <li><a class="li-month" data-val="9" href="#OCT">OCT</a></li> <li><a class="li-month" data-val="10" href="#NOV">NOV</a></li> <li><a class="li-month" data-val="11" href="#DEC">DEC</a></li> </ul> 

<script type="text/javascript">
    $(document).ready(function(){
    var myDate = new Date();
    var curMonth = myDate.getMonth();
    alert(curMonth);
    $('.li-month:lt('+curMonth+')').parent('li').hide();
});
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM