我有一个sharepoint讨论列表。有一个名为“Last Updated”的字段。我正在尝试突出显示上次更新大于1小时的行。
这就是我目前正在尝试的事情:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https:////cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
<script>
$(document).ready(function(){
var now = moment().format('l h:mm:ss a');
console.log(now);
//$row = $("td .ms-vb2:contains('6/13/2014 9:46 AM')");
$rows = $("td[id$='WPQ3'] .ms-vb2:contains('AM'), td[id$='WPQ3'] .ms-vb2:contains('PM')");
console.log($rows);
$times = $rows.children
$rows.parent().css("background-color", "rgba(203, 231, 57, 0.37)");
});
</script>
</head>
</html>
现在,每个单元格都会根据我的选择器突出显示。
$ rows包含2个对象,两个对象的innerText包含时间,因此类似“6/13/2014 9:46 AM”。
我不确定如何查看每一行的时间,将其与now
变量进行比较,然后突出显示我的条件是否满足,即“如果差异小于1小时则突出显示”
答案 0 :(得分:0)
我能够使用moment.js和jQuery的更多研究来解决这个问题。
这是我的解决方案:
$(document).ready(function(){
//STORE CURRENT TIME
var now = moment()
//GET ALL ROWS I'M TRYING TO HIGHLIGHT
$rows = $("td[id$='WPQ3'] .ms-vb2:contains('AM'), td[id$='WPQ3'] .ms-vb2:contains('PM')");
//GO THROUGH EACH ROW FOUND
$.each($rows, function (index, row){
//FOR EACH ROW CONVERT TIME INTO MOMEMTJS OBJECT
var lastUpdateTime = moment(row.innerText)
//USING MOMENT JS, FIND THE DIFFERENCE BETWEEN LAST UPDATE AND NOW
var difference = now.diff(lastUpdateTime, 'hours');
//IF THE DIFFERENCE IS LESS THAN AN HOUR HIGHLIGHT THE CURRENT ROWA
if(difference <= 1){
$(this).parent().css("background-color", "rgba(203, 231, 57, 0.37)");
}
})
});