Javascript 为什么不是';我的代码不能获取JSON值吗? 函数getResults(){ var text=encodeURIComponent(searchField.val().trim()); $.ajax({ 键入:“获取”, url:“https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=“+文本, 数据类型:“jsonp”, 成功:功能(数据){ 显示结果(数据、文本); } }); } 函数显示结果(数据、文本){ results.show(); 变量查询=”https://en.wikipedia.org/wiki/“+案文; for(data.query.pages中的变量id){ var code=“” $(代码).appendTo(结果); } }

Javascript 为什么不是';我的代码不能获取JSON值吗? 函数getResults(){ var text=encodeURIComponent(searchField.val().trim()); $.ajax({ 键入:“获取”, url:“https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=“+文本, 数据类型:“jsonp”, 成功:功能(数据){ 显示结果(数据、文本); } }); } 函数显示结果(数据、文本){ results.show(); 变量查询=”https://en.wikipedia.org/wiki/“+案文; for(data.query.pages中的变量id){ var code=“” $(代码).appendTo(结果); } },javascript,json,Javascript,Json,在showResults函数中,它将id.title和id.extract显示为未定义。为什么呢?我做错了什么?这是因为在对象上迭代时(使用对象中的var循环),var(id在本例中)是键,但如果需要值,请使用对象[key]语法。检查以下代码 $.ajax({ 键入:“获取”, url:“https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=newton", 数据类型:“

在showResults函数中,它将id.title和id.extract显示为未定义。为什么呢?我做错了什么?

这是因为在对象上迭代时(使用
对象中的var
循环),var(
id
在本例中)是键,但如果需要值,请使用
对象[key]
语法。检查以下代码

$.ajax({
键入:“获取”,
url:“https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=newton",
数据类型:“jsonp”,
成功:功能(数据){
for(data.query.pages中的变量id)
document.write(data.query.pages[id].title);
}
});

这是因为在对象上迭代时(使用
for object in object
循环中的var),var
id
)是键,但如果需要值,请使用
object[key]
语法。检查以下代码

$.ajax({
键入:“获取”,
url:“https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=newton",
数据类型:“jsonp”,
成功:功能(数据){
for(data.query.pages中的变量id)
document.write(data.query.pages[id].title);
}
});
执行此操作时:

        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); 
            }
    }
id
变量由一个属性名填充,该属性名只是一个字符串。如果要获取该属性的值,必须引用该属性的值,如中所示:

for (var id in data.query.pages)
或者,如果这是一个对象,然后您需要
.title
,那么您需要

data.query.pages[id]

执行此操作时:

        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); 
            }
    }
id
变量由一个属性名填充,该属性名只是一个字符串。如果要获取该属性的值,必须引用该属性的值,如中所示:

for (var id in data.query.pages)
或者,如果这是一个对象,然后您需要
.title
,那么您需要

data.query.pages[id]


在您的情况下,您只使用了
=>“321123”。要获取对象的值,请使用
。获取对象
数据.query.pages[id]

data.query.pages[id].extract
这个应该有用

for (var id in wiki = data.query.pages){
    wiki[id].title;
    wiki[id].extract;
}
函数显示结果(数据、文本){
results.show();
变量查询=”https://en.wikipedia.org/wiki/“+案文;
for(wiki中的var id=data.query.pages){
var code=“”
$(代码).appendTo(结果);
}
}

在您的情况下,您只需使用
=>“321123”。要获取对象的值,请使用
。获取对象
数据.query.pages[id]

data.query.pages[id].extract
这个应该有用

for (var id in wiki = data.query.pages){
    wiki[id].title;
    wiki[id].extract;
}
函数显示结果(数据、文本){
results.show();
变量查询=”https://en.wikipedia.org/wiki/“+案文;
for(wiki中的var id=data.query.pages){
var code=“”
$(代码).appendTo(结果);
}
}