我正在尝试从现场倒计时2015-10-15的价值减少5天 最终价值应为2015-10-10
<tr>
<td style="white-space: nowrap;" width="30%" class="clsGridCellBase searchable">Time Countdown </td>
<td width="70%" class="clsGridCellBase searchable ">2015-10-15</td>
我想知道在JQuery中是否有更优雅的方法 这就是我尝试的bean:
var date = $('td').filter(function(i) {
$(this).html().indexOf('*Time Countdown*') >= 0;
}).next().text();
var newDate = new Date(date) - 5;
//post the value to the same field.
var date = $('td').filter(function(i) {
$(this).html().indexOf('*Time Countdown*') >= 0;
}).next().text(newDate);
答案 0 :(得分:1)
您可以在一个链中完成所有操作,方法是找到正确的td
,并向返回替换数据的.text()
函数提供函数。您也可以访问该方法中的当前文本。
$('td').filter(function(){
return $(this).html().indexOf("Time Countdown")>-1;
}).next().text(function(){
var current = $(this).text().split('-');
var d = new Date(current[0],current[1],current[2]);
d.setDate(d.getDate() - 5);
return d.getFullYear() + '-' + d.getMonth() + '-' + d.getDate();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td style="white-space: nowrap;" width="30%" class="clsGridCellBase searchable">Time Countdown </td>
<td width="70%" class="clsGridCellBase searchable ">2015-10-15</td>
</tr>
</table>
&#13;
答案 1 :(得分:1)
尝试将字段Time Countdown的值减少5天
如果正确解释问题,请尝试使用:contains()
,.text()
,Date.prototype.getDate()
,String.prototype.replace()
$("table td:contains(Time Countdown)")
.next("td").text(function(_, date) {
var d = new Date(date);
return date.replace(/\d+$/, d.getDate() - 5)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td style="white-space: nowrap;" width="30%" class="clsGridCellBase searchable">Time Countdown </td>
<td width="70%" class="clsGridCellBase searchable ">2015-10-15</td>
</tr>
</table>
&#13;
答案 2 :(得分:0)
存在一些缺陷:
我在这里做了一个小提琴:http://jsfiddle.net/daeLu5ee/
主要部分:
var date = $('#in').html();
var newDate = new Date(date);
newDate.setTime(newDate.getTime() - (5*24*3600*1000));
$('#out').html(newDate.toLocaleString());