0

好的,这就是问题所在,我有一个日历应用程序,它的日期值显示如下:

<div class="date-cell ng-binding" date-cell="" cell-data-index="getDateCellDataIndex(column, row)" ng-repeat="column in columns"> <div ng-click="onDateCellClick()" custom-date-cell="" ng-class="{today: cellData.isToday, 'current-month': cellData.isCurrentMonth}" class="ng-scope ng-binding current-month"> 1 </div> </div>

我还通过 ajax 在页面上加载了一个 XML 文档,返回一个日期值和该日期的价格,我试图将 dom 元素中显示的日期与从 xml 返回的数据相关联,如果它是同一天将价格值附加到该日期。

好的,这就是我所拥有的函数,它失败得很惨,每次返回并记录到控制台时,它都会遍历所有 dom 元素,每次迭代时来自 dom 元素的所有日期,而不是运行它并关联:

            function getRate(source, scope, dateSheet, dateSheetCtrl) {
                var dateValue = $("Date", source).text() || "";
                var thismonth = dateValue.substring(0,2);
                if (!dateValue) {
                    return null;
                }
                var d = new Date();
                var formattedmonthday = (getcalandardates < 10) ? '0' + getcalandardates : getcalandardates;
                var getcalandardates = $(".date-cell > div").text();
                var comparedates = getcalandardates.match(thisday);
                var thisday = dateValue.substring(3,5);
                var curr_date = d.getDate();
                var curr_month = d.getMonth() +1;
                var curr_mont = "0" + curr_month;
                var curr_year = d.getFullYear();
                var date_string = "0" + curr_month + "/0" + curr_date + "/" + curr_year;
                var dailyPrice = $("DailyPrice", source).text() || "";
                var weeklyPrice = $("WeeklyPrice", source).text() || "";
                var monthlyPrice = $("MonthlyPrice", source).text() || "";
                var isAvailable = $("IsAvailable", source).text() === "1";
                var minimumStay = Number($("MinimumStay", source).text());
                console.log(dailyPrice, weeklyPrice, monthlyPrice, isAvailable, minimumStay, dateValue , thismonth, getcalandardates);
                 if(curr_mont ==  thismonth  && comparedates == thisday) {
                    $(this, 'div').append('<p>' + dailyPrice + '</p>');
                    }

                if (curr_mont ==  thismonth  && getcalandardates == thisday){
                    $('.date-cell > div').append('<p>' + dailyPrice + '</p>');
                }
                /*if (date_string == dateValue) {
                    $('.date-cell > .today ').append('<p>' + dailyPrice + '</p>');
                }*/
                if (isNaN(minimumStay)) {
                    minimumStay = DEFAULT_MINIMUM_STAY;
                }

                return {
                    date: new Date(dateValue),
                    dailyPrice: dailyPrice,
                    weeklyPrice: weeklyPrice,
                    monthlyPrice: monthlyPrice,
                    reserved: !isAvailable,
                    minimumStay: minimumStay
                };

            }

现在这是我正在使用的确切 if 语句:

             if(curr_mont ==  thismonth  && comparedates == thisday) {
                $(this, 'div').append('<p>' + dailyPrice + '</p>');
                }

我无法绕过它,非常感谢任何帮助,我觉得我应该使用 for 语句而不是 if 语句,但我似乎无法让它们工作,我尝试了以下方法:

                    $('.date-cell').each(function() {
                 $(this).find(".date-cell > div").text();
                 if(curr_mont ==  thismonth  && getcalandardates == thisday) {
                    $(this, 'div').append('<p>' + dailyPrice + '</p>');
                    }
                });

和这个:

                    $('.date-cell > div ').text().each(function() {
                 if(curr_mont ==  thismonth  && getcalandardates == thisday) {
                    $(this).append('<p>' + dailyPrice + '</p>');
                    }
                });

还有其他一些事情,这是这个小声明的第 4 小时……

xml 每次将以下内容记录到控制台:

90 495  true 2 10/01/2014 10  28  29  30  31  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  

克里斯

/ * ****更新* ** * ** * /

好的,我越来越近了,这是我的新函数,它关闭了它会连续检索文本值,但它仍然无法附加 dailyPrice 并且它不会停止运行,可能是因为它在 angularJS 内部运行:

                $(".date-cell > div").each(function () {
                    var gettextfunc = $(this).text();
                    if(curr_mont ==  thismonth  && gettextfunc == thisday) {
                    $(".date-cell > div").append('<p>' + dailyPrice + '</p>');
                    return false;
                    }
                    console.log(gettextfunc);
                });
4

0 回答 0