我正在为freecodecamp做一个项目,我整天都被困在这一部分。我正在从Wikipedia API中提取数据,并且可以使用它,但是我不确定语法应该如何寻找我要实现的目标。这是指向我正在使用的数据的示例的链接。wikipedia api搜索。
现在,在我的HTML中,我有一个引导模式,在用户将某些内容输入某个表单之后出现,其中列出的组中有一个带有搜索的返回数据的组。
这是我到目前为止的代码。
$(document).ready(function () {
$('#searchForm').on('submit', function(e) {
e.preventDefault();
$('#wikiSearch').modal('show');
var usersearch = document.getElementById('userinput').value;
var apiURL = "https://en.wikipedia.org/w/api.php?
action=opensearch&search="
+ usersearch + "&format=json&callback=?";
$.ajax({
url: apiURL,
contentType: "application/json; charset=utf-8",
dataType: 'json',
type: 'GET',
success: function (data) {
data[1].forEach(function(item) {
$('#results').append("<tr><td><a href='#'>"+item+"</a></td></tr>")
});
data[2].forEach(function(item) {
$('#brief').append("<tr><td>"+item+"</td></tr>")
})
}
});
});
});
对于我的HTML模式中的每个组,我想从搜索中显示1个结果。我认为我可以使用嵌套的foreach,但它并没有返回我想要的结果。我已经尝试使用地图,还尝试创建一个长时间的循环嵌套,并且觉得在学习时,我可能会弊大于利,因为我现在只会感到困惑,大声笑。感谢您的任何输入。
显示搜索结果的第一行使用嵌套数组的第一个键:
$('#results').append("<tr><td><a href='#'>" + data[1][0] + "</a></td></tr>")
$('#brief').append("<tr><td>" + data[2][0] + "</td></tr>")
不要忘记添加检查data
数组中可能的undefined
值的检查。