function getResults(){
var text = encodeURIComponent(searchField.val().trim());
$.ajax({
type: "GET",
url: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=" + text,
dataType: "jsonp",
success: function(data){
showResults(data, text);
}
});
}
function showResults(data, text) {
results.show();
var query = "https://en.wikipedia.org/wiki/" + text;
for (var id in data.query.pages) {
var code = "<a href=" + query + " class='results'>" + "<div class='results'>";
code = code + "<strong>" + id.title + "</strong>";
code = code + "<br>";
code = code + id.extract;
code = code + "</div></a>"
$(code).appendTo(results);
}
}
在 showResults 函数中,它显示 id.title 和 id.extract 为未定义。这是为什么?我做错了什么?
最佳答案
当你这样做时:
for (var id in data.query.pages)
id
变量填充有属性名称,该名称只是一个字符串。如果您想获取该属性的值,则必须引用该属性的值,如下所示:
data.query.pages[id]
或者,如果您想要从中获取 .title
的对象,那么您将需要
data.query.pages[id].title
和
data.query.pages[id].extract
关于javascript - 为什么我的代码没有获取 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381672/