JavaScript,jquery中未定义的VAR的问题.如何
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)
}); });
希望这有帮助
相关文章:
- 如何通过引用var Using DataTables来进行分页或排序
- 如何将具有文本类型值的var放入jQuery函数中
- 当var==0时,我如何显示一个警报
- 如何使用javascript var引用Mongo DB集合's字段
- 如何使用var名称调用JSON数据
- 如何移动矩形“;var canvas1”;在那个代码上
- 如何让这个javascript var在HTML页面上工作
- 如何在通过Javascript重定向时保持StatefulSnippet var值
- 如何知道函数的参数中传递的var名称
- 如何在函数内部为jquery工具提示调用不同的var字符串
- 如何在回调请求中传递var
- Javascript:如何对属性变量(例如var.hello.push)执行数组方法?太习惯AS3了
- 如何将 js 中的 var 转换为 java
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- 如何将所有动态id的arrey值获取到javascript VAR CID,以便在sql中找到匹配项
- jQuery-如何使var文本可点击,该文本放置在由更多元素组成的另一个var中(var,checkbox)
- 如何在没有参数的情况下使用已知的var
- AngularJS:如何在设置了$scope.var之后才在视图中设置$scope.var
- 如何理解此代码(关于javascript'var')
- 如何从回调函数返回 var?OOP 属性