jQuery的$。每次工作正常,但产生类型错误
问题描述:
想象一下以下数据集:
{"FakeEconomy":{
"2016-04-05":5651694,
"2016-04-06":5513759,
"2016-04-07":5410169,
"2016-04-08":5094142,
"2016-04-09":4768829,
"2016-04-10":5101458,
"2016-04-11":5776419,
"2016-04-12":5692041,
"2016-04-13":5568383,
"2016-04-14":5555027,
"2016-04-15":5116844,
"2016-04-16":4653882,
"2016-04-17":5112466,
"2016-04-18":5764588
}}
当我使其通过jQuery的每一个功能,它工作正常,但随后抛出一个随机:
Uncaught TypeError: Cannot read 'visits' of undefined
以下是jQuery代码:
console.log(dataset['visits']); // Prints the data above
$.each(dataset['visits'], function(index,value) {
pageName = index;
$.each(dataset['visits'][index], function(index,value) {
timeline.push(index);
visits_data.push(parseInt(value));
console.log(timeline);
})
});
是什么造成的错误?
答
发现该程序引发错误的原因是因为我在JavaScript文件和HTML文件中放置了jQuery就绪函数,其中包含我上面编写的函数。
在本质上,这一点:
$(document).ready(function(){
var collected_results = graph_data(dataset); // Has the each function
var visitsChart = new Chart(collected_results[0], collected_results[1]);
var devicesChart = new Chart(collected_results[2], collected_results[3]);
var osChart = new Chart(collected_results[4], collected_results[5]);
})
是JavaScript文件中,以及JavaScript文件加载比HTML文件快。
由于JS文件加载速度比HTML文件快,因此无法读取对象,所以会引发错误。
错误不是来自此代码。它来自其他地方。对异常使用暂停来检测这一点。 –
@RajaprabhuAravindasamy你是一个天才。发现程序提出错误的原因是因为我将jQuery准备好的功能放在js文件中而不是html文件中,并且因为js文件比HTML运行速度快,所以它挡住了砖块 – Adib
正常工作:https:// jsfiddle.net/rayon_1990/gvzu13un/ – Rayon