此代码非常适合为过去的日期和从现在起两周内的日期着色。但只能在 Firefox 中而不是在 IE 中,我可以调整代码以便它也可以在 IE 中运行吗?它与 elem.style.color
的渲染有关
正在工作js fiddle
var parents = document.getElementsByTagName("tr")
for (var i = 0, ii = parents.length; i < ii; i++) {
var parent = parents[i],
children = parent.children
for (var j = 0, jj = children.length; j < jj; j++) {
var elem = children[j]
if (j % 3 === 2) {
var dateElement = elem.innerHTML;
var dateArray = dateElement.split("-");
var prevTime = new Date(dateArray);
var thisTime = new Date();
var diff = prevTime.getTime() - thisTime.getTime();
var days = 1000*60*60*24;
var diffInDays = Math.ceil(diff / days);
if (diffInDays < 0) {
elem.style.color = "#996600";
}
else if (diffInDays <= 14) {
elem.style.color = "#e50005 ";
}
}
}
}
最佳答案
问题在于 Internet Explorer 的日期格式无效。
这是更新的Jsfiddle这也适用于 IE。在 IE 中的 Date
构造函数中使用数组会导致日期无效。另请参阅这个问题Passing an array to the Javascript Date constructor, is it standard?
var parents = document.getElementsByTagName("tr")
for (var i = 0, ii = parents.length; i < ii; i++) {
var parent = parents[i],
children = parent.children
for (var j = 0, jj = children.length; j < jj; j++) {
var elem = children[j]
if (j % 3 === 2) {
var dateElement = elem.innerHTML;
var dateArray = dateElement.split("-");
var prevTime = new Date(dateArray[0],dateArray[1]-1,dateArray[2]);
var thisTime = new Date();
var diff = prevTime.getTime() - thisTime.getTime();
var days = 1000*60*60*24;
var diffInDays = Math.ceil(diff / days);
if (diffInDays < 0) {
elem.style.color = "#ffa500";
}
else if (diffInDays <= 14) {
elem.style.color = "#ff0000";
}
}
}
}
关于javascript - 表格日期在 Firefox 中显示颜色,但在 IE 中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648253/