【发布时间】:2019-07-29 18:31:40
【问题描述】:
我在(MVC 查看文件和使用 jQuery)中有一个下拉列表;其中有一些文本和一个日期格式为“yyyy-MM-dd”的子字符串,我能够提取日期并将日期与当前日期进行比较并获得差异,但是基于该差异,我想指定背景颜色。
我将dueDate 子字符串存储到一个变量中并获取当前日期以获取差异。因此,如果到期日期小于 1,则具有该特定日期的项目需要具有红色背景。当我保持 alert() 消息时,当条件为真时,控件进入 if 语句,但设置背景的代码不起作用。
截止日期已过的列表项需要有红色背景。在下面的 sn-p 中,只有第一项需要有红色背景。`
$(document).ready(function () {
$("#ddldueDate").each(function () {
//Extracting DueDate - type string
var SelectedGroup = $(this).children("option").text();
var dueDateStr = SelectedGroup.substring(SelectedGroup.lastIndexOf('[') + 1, SelectedGroup.lastIndexOf(']'));
//Get current date - type string
var d = new Date();
var month = d.getMonth() + 1;
var date = d.getDate();
var currDateStr = d.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (date < 10 ? '0' : '') + date;
var diff = new Date(Date.parse(dueDateStr) - Date.parse(currDateStr));
var days = diff / 86400000;
//alert(days);
if (days < 1) {
$(this).children("option").css({ "background-color": "red" });
} else {
$(this).children("option").css({ "background-color": "white" });
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="col-md-12" style="width:auto">
<select id='ddldueDate' class='form-control'>
<option>[2019-07-27] Test 1</option>
<option>[2021-07-24] Test 2</option>
</select>
</div>
</div>
`
【问题讨论】:
-
提供一个 runnable minimal reproducible example。在问题编辑器工具栏中点击
<>,可以让它在页面的这里运行 -
似乎是 stackoverflow.com/q/7208786 的副本,任何解决方案在浏览器中的可用性/支持都可能有限
标签: jquery css date date-difference