我有一个搜索表单,根据类别搜索JSON模拟数据库(json-server)中的用户,但由于某种原因,在检查了SO和google上的几乎所有示例后,我的代码看起来不起作用。下面是代码
$("#searchBar").on("keyup", function () {
$('.searchBar').animate({ top: "0" }, 500).animate({ left: "0" }, 500).animate({ width: "100%" }, 500);
$('.resultArea').fadeIn();
var query = $("#searchBar").val();
var expression = new RegExp(query, "i");
$.getJSON("db.json", function(data) {
$.each(data, function (key, value) {
if (value.category.query(expression) != -1 || value.username.query(expression) != -1) {
$(".resultArea").append('<p>' + value.username + '</p>')
alert(value.username);
}
});
});
});
The html
<div class="searchBar">
<input type="search" name="searchBar" id="searchBar" placeholder="Try a category 'Computer Programming'">
<label for="submitSearch"><i class="mdi mdi-magnify"></i></label>
<input type="submit" name="submitSearch" id="submitSearch" value="">
</div>
当我尝试使用它时,我得到了这个错误
Uncaught TypeError: Cannot read property 'query' of undefined
请问有什么问题吗?
发布于 2019-03-01 04:42:56
该错误告诉您value.category和/或value.username未定义。
您需要检查服务器检索到的数据,因为它似乎与您期望拥有的数据不同。您可以使用浏览器的DevTools或执行一个简单的console.log(数据)来检查服务器发送的数据。
https://stackoverflow.com/questions/54933766
复制相似问题