比较相等的字符串返回false

时间:2019-12-11 13:17:05

标签: javascript

我正在制定一个实时时间表。我有一个历史,在那里您可以观看过去的日子。要在此历史记录中选择一天,我添加了一个日历,可以在其中单击日期并获取这一天的值。

问题:

现在我想添加假期。我在数组中用ajax加载假期,当我创建日历时,我想检查所有天是否是假期。但是,如果我将days数组中的31.12.2019与holidays-array中的31.12.2019进行比较,该函数将返回false并且我不知道为什么。

可以比较它们的百分百安全,因为我在日志31.12.2019 / 31.12.2019中找到了

此处提供代码:

function getHolidays(str){
            var requestURL = "http://adopraesenz.ipwin.ch/data/holiday.txt";
            var request = new XMLHttpRequest();
            request.onreadystatechange = function() {           
                if(this.readyState === 4 && this.status === 200){
                    if(request.responseText != ""){
                        loadHolidays(request);      
                    }                           
                }
            };
            request.open("GET", requestURL, true);
            request.send();
        }

        function loadHolidays(request){
            var days = [];
            var lines = request.responseText.split('\n');
            for(var line = 0; line < lines.length; line++){
                var day = ""+lines[line];
                days.push(day);     
            }
            holidays = days;
        }

        //This function gets called everytime i added a day to the calender 
        function isHoliday(day){
            if(day.length == 9){
                day = "0" + day;
            }
            for(var x = 0; x < holidays.length; x++){
                if(day == holidays[x]){     
                    return true;
                }else{
                    console.log(day +"/" +holidays[x]);
                }   
            }   
        }
    getHolidays();

此处提供创建日历的功能

function createCalender(monthId,year){

    document.getElementById('leftMonth').style = "visibility:visible";
    document.getElementById('rightMonth').style = "visibility:visible";
    var calender = document.getElementById('calender');
    var oldBody = document.getElementsByTagName('tbody')[1];
    var body = document.createElement('tbody');
    var month = document.getElementById('month');
    var days = createDays(monthId);
    month.innerHTML = months[monthId] +" "+year;
    var rowDays = document.createElement('tr');
    for ( var i = 0; i < weekDays.length ; i++ ){
        var cell = addDay(rowDays, weekDays[i],monthId);
    }   
    body.appendChild(rowDays);

    var row = addWeek();
    for (var j = 0; j < days.length; j++){
        var day = getCurrentDay(days[j], monthId,year);

            for ( var t = 0; t < weekDays.length; t++){
                if(day != weekDays[t] && j == 0){
                    addDay(row, "",monthId,year);
                }else if(day == weekDays[t]){
                    addDay(row, ""+(days[j]),monthId,year);
                    break;
                }
            }
            if(day == "So"){
                body.appendChild(row);
                row = addWeek();
            }else if(j == days.length-1){
                body.appendChild(row);
            }

        }
    replaceBodys(body, oldBody);
    document.getElementById('calenderIcon').style = "visibility:hidden; position:fixed";
    document.getElementById('calenderDiv').style = "border:1px solid grey; background-color:#D3D3D3; margin-top:0.5%;";
}

这里有添加一天的功能:

function addDay(tr, val,monthId,year){
        var cell = document.createElement('td');
        cell.innerHTML = val;

        if(getCurrentDay(val,monthId,year) == 'So' || getCurrentDay(val,monthId,year) == 'Sa' || isHoliday((val)+"."+(monthId+1)+"."+year)){
            cell.style.color = 'red';
        }
        cell.addEventListener('click', function(event){
            var selected = document.getElementsByClassName('selected');
            for (var i = 0; i < selected.length; i++){
                selected[i].classList.remove('selected');
            }
            cell.classList.add('selected');
            var currentMonth = document.getElementById('month').innerHTML;
            var day = cell.innerHTML;
            var date;
            if(day.length < 2){
                date = "0"+day + "." + (months.indexOf(currentMonth.split(" ")[0])+1) +"." +currentMonth.split(" ")[1];
            }else{
                date = day + "." + (months.indexOf(currentMonth.split(" ")[0])+1) +"." +currentMonth.split(" ")[1];
            }
            getData("get"+date);
        });

        tr.appendChild(cell);
        return cell;
    }

这是holiday.txt

2019年12月24日

25.12.2019

31.12.2019

2020年1月1日

02.01.2020

2020年3月2日

2020年4月10日

2020年4月12日

13.04.2020

2020年5月1日

2020年5月21日

2020年5月31日

2020年6月1日

01.08.2020

2020年12月24日

2020年12月25日

2020年12月31日

1 个答案:

答案 0 :(得分:0)

依次使用.split('\r\n')

这将起作用:)