color date 0000-00-00并保留功能

时间:2014-02-14 10:35:06

标签: javascript

我有一个javascript,用于为表格中的所有日期(从今天的日期开始)着色,这些日期已经过去的绿色,以及将在两周内过期的日期。一切都很好。

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 = "#008000";
            }
            else if (diffInDays <= 14) {
                elem.style.color = "#ff0000";
            }
        }
    }
}

但是当我删除到期或过期的产品时,日期变为毛坯 我怎么能将所有的日期颜色设置为紫色,并且仍然是其他日期的绿色和红色?

2 个答案:

答案 0 :(得分:1)

如果我找到了你,那么最快捷的方法就是只为我们添加一个支票,而不会看到你的标记很难说明

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(dateElement === "0000-00-00"){
                elem.style.color = "purple";
            }else if (diffInDays < 0) {
                elem.style.color = "#008000";
            }
            else if (diffInDays <= 14) {
                elem.style.color = "#ff0000";
            }
        }
    }
}

答案 1 :(得分:0)

你尝试过这样的事吗?

function colorDate(){
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 = "#008000";
        }
        else if (diffInDays <= 14) {
            elem.style.color = "#ff0000";
        }
        if(dateElement=="0000-00-00"){
            elem.style.color = "your color";
        }
     }
   }
}
}
colorDate();

并在删除函数中调用colorDate()!