【发布时间】:2021-12-08 19:38:21
【问题描述】:
我是 Javascript 新手。为什么这段代码给了我错误:Cannot read properties of undefined (reading 'length')?我之前尝试过添加 datasrc 代码,但它不起作用。有没有人知道如何解决它?
//implement css in this files
import './style.css';
//jquery already imported
import $ from 'jquery';
// ajax to load
// do table data binding here using data from variable resultArr
var myArray = []
$.ajax({
method:'GET',
url:'https://www.seetrustudio.com/data.php',
success:function(response){
myArray = response.data
buildTable(myArray)
console.log(myArray)
}
})
function buildTable(data){
var table = document.getElementById('myTable')
for (var i = 0; i < data.length; i++){
var row = `<tr>
<td>${data[i].date}</td>
<td>${data[i].weather}</td>
<td>${data[i].temperature}</td>
<td>${data[i].temp_unit}</td>
</tr>`
table.innerHTML += row
}
}`
【问题讨论】:
-
在您的成功回调中,您已将
myArray分配给response.data。由于response没有data字段,myArray将是undefined,因此,传递给buildTable的data也将是未定义的。所以如果你只是在你的ajax成功回调中使用myArray = response,一切都会正常工作。 对于您的下一个问题,我建议您使用console.log打印变量分配和 API 响应的结果,以便跟踪您的代码并轻松找到问题的根源:)
标签: javascript arrays ajax