好的,这就是问题所在,我有一个日历应用程序,它的日期值显示如下:
<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);
});