我是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
}
}`
在你的代码中只有一个地方使用length
:data.length
在for循环中。
for (var i = 0; i < data.length; i++){
因此,解释器告诉I cannot read length of undefined
因此data
未定义,因此myArray
和response.data
未定义,您应该在
myArray = response.data
并查看响应中的内容,以及为什么它不包含密钥data
。
对于我来说,我还没有更新我的应用程序的API密钥。当我这样做了,问题就解决了。