jQuery数组不起作用

时间:2017-10-31 22:55:40

标签: jquery ajax

我有这个简单的数组,但我无法访问其中的元素。我有这个ajax代码,我正在预订日期并将它们存储在一个数组中。然后,我只是通过简单的inArray检查所选日期是否已被预订,但它无效。我也试过获得直接值,但它给了我undefined

AJAX

window.carRentalBookedOutDays = [];

var dataObj = {
    'action':'car_rental_booked_dates_request',
    'car_rental_id' : carRentalId,
    'month' : month,
    'year' : year,
    'nonce' : BYTAjax.nonce
};

$.ajax({
    url: BYTAjax.ajaxurl,
    data: dataObj,
    success:function(json) {
        // This outputs the result of the ajax request
        var bookedDates = JSON.parse(json);

        var i = 0;
        for (i = 0; i < bookedDates.length; ++i) {
            window.carRentalBookedOutDays.push(bookedDates[i].booking_date);
        }

        if (typeof(callDelegate) !== 'undefined') {
            callDelegate();
        }
    },
    error: function(errorThrown) {

    }
});

检查条件:

var datesArray = window.carRentalBookedOutDays;
var dateToCheck = "2017-11-03";

console.log(datesArray);

// returns undefined
console.log(datesArray[0]);

if ($.inArray(dateToCheck, datesArray) > -1) {
    dateTest = false;
    break;
}
if ($.inArray(dateToCheck2, datesArray) > -1) {
    dateTest = false;
    break;
}

输出: http://take.ms/HRK76

1 个答案:

答案 0 :(得分:0)

发生了一些奇怪的事情,如果我在检查脚本中添加了一个延迟它的工作原理。但添加延迟不是正确的选择。

我最终验证了ajax成功方法本身的日期,它在那里工作正常。

我认为此问题与this

有关