[英]issue with undefined var in javascript, jquery. how to?
我正在使用Date.js來顯示一些日期,並且發生了一件奇怪的事情。 如果我在each
語句中形成的數組中使用它。
這是我的意思:
如果我將events_array
傳遞並使用到test
函數數組,則一切正常,但是如果我使用eventsArray
,則外觀應該相同,我得到:
startDate is undefined
...new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()).getTime()...
function getTest() {
$.ajax({
type: "GET",
url: "/index",
dataType: "json",
success: function (data) {
var eventsArray = new Array();
jQuery.each(data, function (i, val) {
eventsArray.push(
new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}));
});
var events_array = new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
});
test(events_array);
}
});
}
有任何想法嗎?
謝謝
在測試功能中,請嘗試以下操作:
function test(eventsArray) {
// try this
eventsArray[0][0].startDate
}
eventsArray
如下所示:
eventsArray = [
[
{
startDate: ..
endDate: ..
}
]
];
但是您應該使它更容易:
var eventsArray = new Array();
eventsArray.push({
startDat: ..
endDate: ..
});
如果不需要,請不要在eventsArray
使用其他數組。
要訪問該值,請使用:
eventsArray[0].startDate;
eventsArra[0].endDate;
events_array
,您會看到,在其中推送數據時,您沒有使用其他數組。 您可能打算用對象填充eventArray
,而不是用每個對象中的單個對象填充數組:
eventsArray.push({ // NOT new Array...
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10)
}); });
您的兩個數組不相同:var eventsArray = new Array();
jQuery.each(data, function (i, val) {
eventsArray.push(
new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}));
});
/* here eventsArray is like that [[{
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}]] Look at the two [[ or ]] : array of object in an array
*/
var events_array = new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
});
/* here events_array is like that [{
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {}] only one [ ... array of objects ...
*/
我認為你應該使用:
eventsArray.push({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10)
}); });
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.