我正在尝试实现一些Javascript,它将根据元素中的日期是否已经过去从页面中删除元素及其父元素。
例如,如果今天的日期是2014年12月16日,并且该元素包含2014年12月15日的日期,那么我希望删除该元素。我已经有一些代码,我用于我的另一个网站,删除元素和它的父成功,但该网站的日期格式不同于当前网站上的日期格式。应用此代码不适用于当前站点。
以下是我从其他网站上删除元素的Javascript:
<script type='text/javascript'>
jQuery(document).ready(function(){
jQuery('.o-date').each( function(key,value){
console.log(value);
var currentDate = new Date();
var date = new Date(jQuery(value).text());
if(date < currentDate){
jQuery(value).parent().remove();
}
});
});
</script>
这是当前网站上包含日期及其父级的元素的标记:
<tr data-offer-id="13503" class="special">
<td class="o-date">December 14, 2014 - January 9, 2015</td>
<td class="o-content"></td>
<td class="o-amount">
<select>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</td>
</tr>
编辑:此处为jsfiddle。
答案 0 :(得分:1)
假设他们都以这种方式进行了格式化,并且只有在两个日期中的第一个已经过去时才想要删除:
js小提琴表现得很奇怪,所以我做了一个代码。我还必须在那些<tr/>
els周围找一张桌子。
jQuery(document).ready(function(){
jQuery('.o-date').each( function(i,val){
var currentDate = new Date();
var date = new Date(jQuery(val).text().split(' - ')[0]); // or 1 for second date
if(date < currentDate){
jQuery(val).parent().remove();
}
});
});