1 回答
TA贡献1831条经验 获得超4个赞
问题是因为您仅在页面首次加载且页面为空时从字段中读取值。要解决此问题,请将该逻辑移至click处理程序内。
下一个问题是您应该this从 中删除$('input[type="text"]', this)。这里不需要上下文选择器,无论如何,这个选择器都是不正确的。
另请注意,有效的查询字符串以 开头?并用 分隔每个值&,因此url需要稍微修改您的连接。此外,您不应url在每次点击时更新该值。如果您这样做,您的 AJAX 请求将只能工作一次。
最后,metadata您的响应中的 是一个对象,而不是数组。data是数组,因此您需要对其进行循环。还可以使用 来简化循环map()。尝试这个:
$(document).ready(function() {
const url = "https://data.edu/api/v1/metadata";
$('button[type="button"]').on('click', function(e) {
let searchstring = $('input[type="text"]').val();
let requestUrl = url + `?text=${searchstring}&title=${searchstring}`;
$.ajax({
type: 'GET',
url: requestUrl,
success: function(res) {
let html = res.data.map(item => `<div>Title ${item.metadata.title}</div><br />`);
$('#results').html(html);
}
});
});
});
- 1 回答
- 0 关注
- 73 浏览
添加回答
举报