我想根据星期几显示/隐藏表格行。我现在的代码显示/隐藏基于24小时的时间段,而不是日历天:
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="button1">Monday</button>
<button type="button" id="button2">Tuesday</button>
<table id="myTable">
<thead>
<tr>
<th>Table</th>
</tr>
</thead>
<tbody>
<tr>
<td class="dates">13/02/2017 12:45 pm</td>
</tr>
<tr>
<td class="dates">14/02/2017 12:45 pm</td>
</tr>
</tbody>
$('#button1').click(function(){
var $dates = $('.dates');
var m = moment().add(1, 'd');
$dates.each(function() {
var date = moment($(this).text(), 'DD/MM/YYYY hh:mm a');
if (date.isBetween(moment(), m)) {
$(this).parent().show();
} else {
$(this).parent().hide();
}
});
});
答案 0 :(得分:0)
作为'dddd',在moment.format()中表示星期的名称,您可以轻松地将其与按钮标签进行比较。
通过向所有按钮添加公共类来将点击处理程序附加到所有按钮。 jQuery允许选择符合选择标准的所有元素。
进入处理程序后,取出单击按钮的标签并将其与解析日期进行比较,以决定显示/隐藏每个标签。
$('.day-btns').click( function() {
var btnText = $(this).text();
$('.dates').each(function() {
var date = moment($(this).text(), 'DD/MM/YYYY hh:mm a');
if (date.format('dddd') == btnText) {
$(this).parent().show();
} else {
$(this).parent().hide();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" class="day-btns" id="button1">Monday</button>
<button type="button" class="day-btns" id="button2">Tuesday</button>
<table id="myTable">
<thead>
<tr>
<th>Table</th>
</tr>
</thead>
<tbody>
<tr>
<td class="dates">13/02/2017 12:45 pm</td>
</tr>
<tr>
<td class="dates">14/02/2017 12:45 pm</td>
</tr>
</tbody>
答案 1 :(得分:0)
使用.weekday
方法获取基于工作日的数字,星期日将获得0,星期一将获得1等。
根据区域设置获取或设置星期几。
示例:
moment().weekday(); // code ran on a sunday
// 0
moment(new Date(1, 12, 2005)).weekday();
// 5
请注意,该方法可从本地知晓,来自文档
如果语言环境将星期一指定为一周的第一天,则moment()。weekday(0)将是星期一。如果星期日是一周的第一天,则星期()。星期日(0)将是星期日。