undefined不能读取属性XXX
说明定义变量里的值是undefined
查看报错的代码顺藤摸瓜:
那打印console看一下 (很关键, 一定要学会打印)
有可能是代码的书写错误了(大意写错了)
*当发现问题后, 要学会顺腾摸瓜, 变量只是个代号, 而变量里装的什么只有打印出来才知道
错误代码:
var arr = res.date;
arr.forEach(function(obj){
let {id, publisher, author, bookname} = obj;
var theTr = `<tr>
<td>${id}</td>
<td>${bookname}</td>
<td>${author}</td>
<td>${publisher}</td>
<td>
<a href="javascript:;" class="del">删除</a>
</td>
</tr>`;
$("#tb").prepend(theTr);
})
错误报告:
错误分析:
是arr读取的forEach方法, 报错说arr是个undefined(说明arr变量里的值是undefined)
顺藤摸瓜:
那么观察arr的值是在上面res.date给的
那打印res观察 (很关键, 一定要学会打印)
发现res的数据再data属性上, 而非date. 发现是拼写错误
解决:
var arr = res.data;