我正在尝试使用jQuery (AJAX) 从 GitHub API 获取一些数据,并将其附加到静态网页中。下面是我的 HTML 和 JS 片段。
$(document).ready(function(){
$.ajax({
url: 'https://api.github.com/repos/FearlessPython/Basics-of-Python',
}).done(function(repo){
$('#heading').html(`${repo.name}<hr>`);
$('#stats').html(`
<strong>Stars</strong>: ${repo.stargazers_count} <br>
<strong>Watchers</strong>: ${repo.watchers_count} <br>
<strong>Language</strong>: ${repo.language} <br>
<strong>Open Issues</strong>: ${repo.open_issues_count} <br>
<strong>License</strong>: ${repo.license.name}<br>
`);
});
$.ajax({
method: "GET",
url: "https://api.github.com/repos/FearlessPython/Basics-of-Python/contributors",
dataType: "json"
}).done(function(data){
$.each(data, function(index, url){
$.ajax({
url: data[index].url
}).done(function(individual_contributor){
// console.log(data[index].url);
$('ul#users').append(`
<li><strong>${individual_contributor.name}</strong></li>
<li><strong>Bio:</strong> ${individual_contributor.bio}</li>
<li><strong>Public Repos:</strong> ${individual_contributor.public_repos}</li>
<li><strong>Followers:</strong> ${individual_contributor.followers}</li>
<li><strong>Following:</strong> ${individual_contributor.following}</li>
`)
});
});
$.map(data, function(contributor, i){
// contrb.push(contributor);
$('ol#contributors').append(`
<li><a href="${contributor.html_url}" target="_blank">${contributor.login}</a></li>
<img src = "${contributor.avatar_url}" style = "float: right;" width=10%>
<ul id="users"></ul>
`);
});
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
</head>
<body>Here, dynamic statistics are available regarding this repository in GitHub.
<div id="statistics">
<h3 id="heading"></h3>
<ul id="stats"></ul>
<h4>Contributors</h4><hr>
<ol id="contributors">
<!-- <ul id="users"></ul> -->
</ol>
</div>
</body>
</html>
你可以看到,在每个用户下,同样的事情一次又一次地迭代。使用.html()
而不是.append()
覆盖第一次迭代数据,并且所有内容都被最新迭代的数据替换。理想的结果应该是这样的:
我也尝试使用for
循环,但同样的事情正在发生。我试图从最近几天开始解决它,但无法解决它。我刚刚开始使用 jQuery 和 AJAX。
注意:如果 GitHub API 请求超出您的要求,您将无法看到上述代码片段的结果。所以我还包括网页当前情况的图像。