【发布时间】:2020-09-14 08:27:46
【问题描述】:
在获取 API 后,我在更新列表时遇到了一些问题。
在每个新字母之后,列表应更新并仅显示以输入字母开头的结果。
请帮忙:)
这是我的 JS 代码:
var input = document.getElementById('input');
input.addEventListener('keyup', getJson);
function getJson() {
fetch('https://itunes.apple.com/search?term=indie&entity=song')
.then(function (response) {
return response.json();
})
.then(function (data) {
console.log(data);
let result = '';
data.results.forEach(function (song) {
result += `<li>${song.artistName} - ${song.trackName}</li>`;
});
document.getElementById('result').innerHTML = result;
})
.catch(function (empty) {
console.log(empty);
});
}
这里是 HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Search songs</title>
</head>
<body>
<div id="app">
<h1>Enter artist name or song:</h1>
<input type="text" id="input">
<div class="loader"></div>
<br><br>
<div id="result"></div>
</div>
<script src="script.js"></script>
</body>
</html>
【问题讨论】:
-
我不确定是否是这种情况,但您应该知道,javascript 不会仅仅因为您更改了它而呈现某些内容。有 AnimationFrames,也许你应该使用
requestAnimationFrame()来更新你的 html。更多关于requestAnimationFrame()和事件循环 - youtu.be/cCOL7MC4Pl0
标签: javascript api fetch-api onkeyup