我目前正在尝试创建一个允许我使用jQueryUI datepicker选择日期的过滤器。然后将该日期与隐藏输入的值进行比较。如果隐藏日期小于使用选择器选择的日期,则隐藏输入的父div
将使用.hide()
函数隐藏。
<div data-value="I0001-APP0277-S" class="server_wrapper" style="display: block;">
<div class="detail_wrapper">....</div>
<input type="hidden" class="buildStart_hidden" value="4/25/2014 1:46:19 pm">
</div>
<input type="text" id="buildStart_filter" class="secondary_live_filter hasDatepicker">
使用此代码:
$('#buildStart_filter').change(function(){
var date = $(this).val();
$('.buildStart_hidden').each(function(){
if(date>$(this).val().split(' ')[0]){
$(this).parent().hide();
}
});
});
但使用此代码并不起作用。我认为这可能是由于字符串值而不是日期值的比较。我可以更改什么来进行比较?
答案 0 :(得分:0)
也许:
您错过了从DATE删除小时
date.split(' ')[0] > $(this).val().split(' ')[0]
答案 1 :(得分:0)
经过多次工作,我发现了问题。 我试图比较字符串类型而不是日期类型。
此代码现在正在使用hiddenDate
和FilterDate
Date()
类型,因此可以使用>=
运算符进行评估:
$('#buildStart_filter').change(function(){
var filterDate = $('#buildStart_filter').datepicker('getDate');
$('.buildStart_hidden').each(function(){
var hiddenDateStr = $(this).val();
var hiddenDate = new Date(hiddenDateStr);
if(filterDate>=hiddenDate){
$(this).parent().hide();
}else{
$(this).parent().show();
}
});
});