这是我第一次在这里发帖,但我迫切需要一个解决方案。如果我的问题格式不正确,我提前向您道歉。所以基本上我正在努力的是将json数据附加到我的html中的段落中。我的应用程序接口是好的,我检查了console.log的数据在那里,但每次我试图追加数据,一个错误弹出在我的控制台上说:未捕获驱动程序:无法读取属性‘TypeError’的未定义。
我尝试从function中删除MRData,但似乎没有任何效果。
$.getJSON("http://ergast.com/api/f1/2016/drivers.json", function(MRData) {
console.log(MRData);
var drId = MRData.DriverTable.Drivers[0].driverId;
var permanentNum = MRData.DriverTable.Drivers[0].permanentNumber;
var kod = MRData.DriverTable.Drivers[0].code;
$('#p0').append(drId);
$('#p1').append(permanentNum);
$('#p2').append(kod);
})
<body>
<p id="p0"></p>
<p id="p1"></p>
<p id="p2"></p>
</body>我希望在这里完成的是从每个变量中获取字符串,并将它们附加到我的段落中。
发布于 2019-01-15 00:47:36
问题是,您认为结果数据是MRData,但实际上它是一个包含MRData的对象。
data = {
MRData: {...}
}访问MRData将使您的代码正常工作。
$.getJSON("http://ergast.com/api/f1/2016/drivers.json", function(data) {
//data is an object which will have MRData inside.
var MRData = data.MRData;
var drId = MRData.DriverTable.Drivers[0].driverId;
var permanentNum = MRData.DriverTable.Drivers[0].permanentNumber;
var kod = MRData.DriverTable.Drivers[0].code;
$('#p0').append(drId);
$('#p1').append(permanentNum);
$('#p2').append(kod);
})<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<p id="p0"></p>
<p id="p1"></p>
<p id="p2"></p>
</body>
发布于 2019-01-15 00:55:31
您必须使用
var MRData =data.MRData;
console.log(data.MRData);
var drId = MRData.DriverTable.Drivers[0].driverId;
var permanentNum = MRData.DriverTable.Drivers[0].permanentNumber;
var kod = MRData.DriverTable.Drivers[0].code;
$('#p0').append(drId);
$('#p1').append(permanentNum);
$('#p2').append(kod);
})收件人数据具有字段MRData,而您使用的是var MRData =data.MRData;
发布于 2019-01-15 01:04:46
在json文件中,您有一个变量mrData,因此您的起点应该是
MRData.MRData.DriverTable.Drivers如果你看一下你的json文件,它会说
{
MRData={}
}添加MRData= MRData.MRData;应该可以解决这个问题。或者,您可以简单地将jsonfile文件内容修改为{DriverTable:{// bla bla bla }}。
$.getJSON("http://ergast.com/api/f1/2016/drivers.json", function(MRData) {
console.log(MRData);
MRData= MRData.MRData; // here is a simple workout
var drId = MRData.DriverTable.Drivers[0].driverId;
var permanentNum = MRData.DriverTable.Drivers[0].permanentNumber;
var kod = MRData.DriverTable.Drivers[0].code;
$('#p0').append(drId);
$('#p1').append(permanentNum);
$('#p2').append(kod);
})<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<p id="p0"></p>
<p id="p1"></p>
<p id="p2"></p>
</body>
https://stackoverflow.com/questions/54185600
复制相似问题