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 關注
- 114 瀏覽
添加回答
舉報
